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

  1. /*
  2. ** SplitANIM.adpro
  3. **
  4. ** $VER: SplitANIM.adpro 1.2.0 (26.10.93)
  5. **
  6. ** This AREXX program will take an existing ANIM file and split it
  7. ** into two individual anims.
  8. **
  9. ** This script requires ADPro v2.5.0 (or higher).
  10. **
  11. ** Copyright © 1990-1993 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.  
  34. PSTATUS "UNLOCKED"
  35.  
  36.  
  37. /*
  38. ** Select the file to crop.
  39. */
  40.  
  41. CALL "FREDSCRIPTS:FREDFunctions/GetAFile" '"Enter ANIM To Split Up"' '"ADPRO:"' '""""' TRUE
  42. IF (RESULT = DQ||DQ) THEN DO
  43.     ADPRO_TO_FRONT
  44.     OKAY1 "No source ANIM specified."
  45.     CALL ErrorOut 10
  46. END
  47. fname = RESULT
  48.  
  49. ADPRO_TO_FRONT
  50.  
  51. OKAYN '"SplitANIM"' '"Was this ANIM created with the Wrap-Up Option?"' '"Yes|No|Cancel"'
  52. IF (RC = 0) THEN DO
  53.     CALL ErrorOut 10
  54. END
  55. ELSE IF (RC = 1) THEN
  56.     wrap = 1
  57. ELSE IF (RC = 2) THEN
  58.     wrap = 0
  59.  
  60. ADPRO_TO_FRONT
  61.  
  62. OKAYN '"SplitANIM"' '"Save the first ANIM with the WRAPUP option?"' '"Yes|No|Cancel"'
  63. IF (RC = 0) THEN DO
  64.     CALL ErrorOut 10
  65. END
  66. ELSE IF (RC = 1) THEN
  67.     wrap1 = 1
  68. ELSE IF (RC = 2) THEN
  69.     wrap1 = 0
  70.  
  71. ADPRO_TO_FRONT
  72.  
  73. OKAYN '"SplitANIM"' '"Save the second ANIM with the WRAPUP option?"' '"Yes|No|Cancel"'
  74. IF (RC = 0) THEN DO
  75.     CALL ErrorOut 10
  76. END
  77. ELSE IF (RC = 1) THEN
  78.     wrap2 = 1
  79. ELSE IF (RC = 2) THEN
  80.     wrap2 = 0
  81.  
  82. LOADER "ANIM" fname "COUNT"
  83. IF (RC ~= 0) THEN DO
  84.     ADPRO_TO_FRONT
  85.     OKAY1 "Can't find ANIM file."
  86.     CALL ErrorOut 10
  87. END
  88.  
  89. numframes = ADPRO_RESULT
  90. IF (wrap ~= 0) THEN
  91.     numframes = numframes - 2
  92.  
  93.  
  94. CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"Frame # to split at"' numframes 1 numframes TRUE
  95. IF (RESULT = (1-1)) THEN DO
  96.     CALL ErrorOut 10
  97. END
  98. length1 = RESULT
  99.  
  100.  
  101. /*
  102. ** Get name of first ANIM.
  103. */
  104.  
  105. CALL "FREDSCRIPTS:FREDFunctions/GetAFile" '"Name of first ANIM"' '"ADPRO:"' '""""' TRUE
  106. IF (RESULT = DQ||DQ) THEN DO
  107.     ADPRO_TO_FRONT
  108.     OKAY1 "No ANIM specified."
  109.     CALL ErrorOut 10
  110. END
  111. name1 = RESULT
  112.  
  113. IF (EXISTS( name1 )) THEN DO
  114.     ADPRO_TO_FRONT
  115.  
  116.     OKAYN '"SplitANIM"' '"Truncate existing ANIM?"' '"Start New File|Append To File|Cancel"'
  117.     IF (RC = 0) THEN DO
  118.         CALL ErrorOut 10
  119.     END
  120.     ELSE IF (RC = 1) THEN
  121.         ADDRESS COMMAND "Delete >NIL:" name1
  122. END
  123.  
  124.  
  125. /*
  126. ** Get name of second ANIM.
  127. */
  128.  
  129. CALL "FREDSCRIPTS:FREDFunctions/GetAFile" '"Name of second ANIM"' '"ADPRO:"' '""""' TRUE
  130. IF (RESULT = DQ||DQ) THEN DO
  131.     ADPRO_TO_FRONT
  132.     OKAY1 "No ANIM specified."
  133.     CALL ErrorOut 10
  134. END
  135. name2 = RESULT
  136.  
  137. IF (EXISTS( name2 )) THEN DO
  138.     ADPRO_TO_FRONT
  139.  
  140.     OKAYN '"SplitANIM"' '"Truncate existing ANIM?"' '"Start New File|Append To File|Cancel"'
  141.     IF (RC = 0) THEN DO
  142.         CALL ErrorOut 10
  143.     END
  144.     ELSE IF (RC = 1) THEN
  145.         ADDRESS COMMAND "Delete >NIL:" name2
  146. END
  147.  
  148. continue = 0
  149. num = 1
  150. DO WHILE (continue = 0)
  151.     LOADER "ANIM" fname "FRAME" num
  152.     IF (RC ~= 0) THEN DO
  153.         ADPRO_TO_FRONT
  154.         OKAY1 "Error during load" || NL ||,
  155.             "of frame " || num || "."
  156.         CALL ErrorOut 10
  157.     END
  158.  
  159.     IF (num <= length1) THEN DO
  160.         SAVER "ANIM" name1 "APPEND" "IMAGE"
  161.         IF (RC ~= 0) THEN DO
  162.             ADPRO_TO_FRONT
  163.             OKAY1 "Error writing frame " || num || NL ||,
  164.                 "of first ANIM."
  165.             CALL ErrorOut 10
  166.         END
  167.     END
  168.  
  169.     IF (num = (length1 + 1)) & (wrap1 ~= 0) THEN DO
  170.         SAVER "ANIM" name1 "WRAPUP" "IMAGE"
  171.         IF (RC ~= 0) THEN DO
  172.             ADPRO_TO_FRONT
  173.             OKAY1 "Error wraping up first ANIM."
  174.             CALL ErrorOut 10
  175.         END
  176.  
  177.         SAVER "ANIM" name1 "QUIT" "IMAGE"
  178.         IF (RC ~= 0) THEN DO
  179.             ADPRO_TO_FRONT
  180.             OKAY1 "Error closing up first ANIM."
  181.             CALL ErrorOut 10
  182.         END
  183.     END
  184.     ELSE IF (num = (length1 + 1)) & (wrap1 = 0) THEN DO
  185.         SAVER "ANIM" name1 "QUIT" "IMAGE"
  186.         IF (RC ~= 0) THEN DO
  187.             ADPRO_TO_FRONT
  188.             OKAY1 "Error closing up first ANIM."
  189.             CALL ErrorOut 10
  190.         END
  191.     END
  192.  
  193.     IF (num > length1) THEN DO
  194.         SAVER "ANIM" name2 "APPEND" "IMAGE"
  195.         IF (RC ~= 0) THEN DO
  196.             ADPRO_TO_FRONT
  197.             OKAY1 "Error writing frame " || numframes - num || NL ||,
  198.                 "of second ANIM."
  199.             CALL ErrorOut 10
  200.         END
  201.     END
  202.  
  203.     IF (num = numframes) & (wrap2 ~= 0) THEN DO
  204.         SAVER "ANIM" name2 "WRAPUP" "IMAGE"
  205.         IF (RC ~= 0) THEN DO
  206.             ADPRO_TO_FRONT
  207.             OKAY1 "Error wrapping up second ANIM."
  208.             CALL ErrorOut 10
  209.         END
  210.  
  211.         SAVER "ANIM" name2 "QUIT" "IMAGE"
  212.         IF (RC ~= 0) THEN DO
  213.             ADPRO_TO_FRONT
  214.             OKAY1 "Error closing up second ANIM."
  215.             CALL ErrorOut 10
  216.         END
  217.     END
  218.     ELSE IF (num = numframes) & (wrap2 = 0) THEN DO
  219.         SAVER "ANIM" name2 "QUIT" "IMAGE"
  220.         IF (RC ~= 0) THEN DO
  221.             ADPRO_TO_FRONT
  222.             OKAY1 "Error closing up second ANIM."
  223.             CALL ErrorOut 10
  224.         END
  225.     END
  226.  
  227.     num = num + 1
  228.     IF (num > numframes) THEN
  229.         continue = 1
  230. END
  231.  
  232. CALL ErrorOut 0
  233.  
  234.  
  235. ErrorOut:
  236.     PARSE ARG ExitCode
  237.  
  238.     IF (EXISTS( fname )) & (ErrorCode ~= 0) THEN DO
  239.         LOADER "ANIM" fname "QUIT"
  240.         IF (RC ~= 0) THEN DO
  241.             ADPRO_TO_FRONT
  242.             OKAY1 "Error closing source ANIM:" || NL ||,
  243.                 fname || NL || NL ||,
  244.                 "You need to close it" || NL ||,
  245.                 "manually."
  246.         END
  247.     END
  248.  
  249.     IF (EXISTS( name1 )) & (ErrorCode ~= 0) THEN DO
  250.         SAVER "ANIM" name1 "IMAGE" "QUIT"
  251.         IF (RC ~= 0) THEN DO
  252.             ADPRO_TO_FRONT
  253.             OKAY1 "Error closing dest ANIM 1:" || NL ||,
  254.                 name1 || NL || NL ||,
  255.                 "You need to close it" || NL ||,
  256.                 "manually."
  257.         END
  258.     END
  259.  
  260.     IF (EXISTS( name2 )) & (ErrorCode ~= 0) THEN DO
  261.         SAVER "ANIM" name2 "IMAGE" "QUIT"
  262.         IF (RC ~= 0) THEN DO
  263.             ADPRO_TO_FRONT
  264.             OKAY1 "Error closing dest ANIM 2:" || NL ||,
  265.                 name2 || NL || NL ||,
  266.                 "You need to close it" || NL ||,
  267.                 "manually."
  268.         END
  269.     END
  270.  
  271.     IF (EXISTS( TempDefaults )) THEN DO
  272.         LOAD_DEFAULTS TempDefaults
  273.         IF (RC ~= 0) THEN DO
  274.             ADPRO_TO_FRONT
  275.             OKAY1 "Error restoring settings."
  276.         END
  277.  
  278.         ADDRESS COMMAND "Delete >NIL:" TempDefaults
  279.     END
  280.  
  281.     EXIT ExitCode
  282.