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

  1. /*
  2. ** JoinANIMs.adpro
  3. **
  4. ** $VER: JoinANIMs.adpro 1.2.0 (23.10.93)
  5. **
  6. ** This AREXX program will take some existing ANIM files and join them
  7. ** into one composite ANIM.
  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. ** Get the number of ANIMs to join.
  39. */
  40.  
  41. CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"How many ANIMs to join"' 2 2 10 TRUE
  42. IF (RESULT = (2-1)) THEN DO
  43.     ADPRO_TO_FRONT
  44.     OKAY1 "No number specified."
  45.     CALL ErrorOut 10
  46. END
  47. numANIMS = RESULT
  48.  
  49. num = 1
  50. continue = 0
  51. DO WHILE (continue = 0)
  52.     string = "Enter ANIM # "num
  53.  
  54.     CALL "FREDSCRIPTS:FREDFunctions/GetAFile" '"'string'"' '"ADPRO:"' '""""' TRUE
  55.     IF (RESULT = DQ||DQ) THEN DO
  56.         ADPRO_TO_FRONT
  57.         OKAY1 "Error, no ANIM specified."
  58.         CALL ErrorOut 10
  59.     END
  60.     fname.num = RESULT
  61.  
  62.     ADPRO_TO_FRONT
  63.  
  64.     OKAYN '"JoinANIM"' '"Was this ANIM created with the Wrap-Up option?"' '"Yes|No|Cancel"'
  65.     WrapCheck = RC
  66.  
  67.     IF (WrapCheck = 0) THEN DO
  68.         CALL ErrorOut 10
  69.     END
  70.     ELSE IF (WrapCheck = 1) THEN
  71.         wrap.num = 1
  72.     ELSE IF (WrapCheck = 2) THEN
  73.         wrap.num = 0
  74.     
  75.     num = num + 1
  76.     IF (num > numANIMS) THEN
  77.         continue = 1
  78. END
  79.  
  80.  
  81. CALL "FREDSCRIPTS:FREDFunctions/GetAFile" '"Enter name of destination ANIM"' '"ADPRO:"' '""""' TRUE
  82. IF (RESULT = DQ||DQ) THEN DO
  83.     ADPRO_TO_FRONT
  84.     OKAY1 "Error, no destination ANIM specified."
  85.     CALL ErrorOut 10
  86. END
  87. destName = RESULT
  88.  
  89. IF (EXISTS( destName )) THEN DO
  90.     ADPRO_TO_FRONT
  91.  
  92.     OKAYN '"JoinANIM"' '"Truncate existing ANIM?"' '"Start New File|Append To File|Cancel"'
  93.     TrunCheck = RC
  94.  
  95.     IF (TrunCheck = 0) THEN DO
  96.         CALL ErrorOut 10
  97.     END
  98.     ELSE IF (TrunCheck = 1) THEN
  99.         truncdest = 1
  100.     ELSE IF (TrunCheck = 2) THEN
  101.         truncdest = 0)
  102.     
  103.     IF (truncDest = 1) THEN
  104.         ADDRESS COMMAND "Delete >NIL:" destName
  105. END
  106.  
  107. ADPRO_TO_FRONT
  108.  
  109. OKAYN '"JoinANIM"' '"Save dest. ANIM with Wrap-Up option?"' '"Wrap-Up|No Wrap-Up|Cancel"'
  110. DestWrapCheck = RC
  111.  
  112. IF (DestWrapCheck = 0) THEN DO
  113.     CALL ErrorOut 10
  114. END
  115. ELSE IF (DestWrapCheck = 1) THEN
  116.     wrapDest = 1
  117. ELSE IF (DestWrapCheck = 2) THEN
  118.     wrapDest = 0
  119.  
  120. num = 1
  121. continue = 0
  122. DO WHILE (continue = 0)
  123.     LOADER "ANIM" fname.num "COUNT"
  124.     IF (RC ~= 0) THEN DO
  125.         ADPRO_TO_FRONT
  126.         OKAY1 "Can't find ANIM file."
  127.         CALL ErrorOut 10
  128.     END
  129.  
  130.     numframes = ADPRO_RESULT
  131.     IF (wrap.num ~= 0) THEN
  132.         numframes = numframes - 2
  133.  
  134.     num2 = 1
  135.     continue2 = 0
  136.     DO WHILE (continue2 = 0)
  137.         LOADER "ANIM" fname.num "FRAME" num2
  138.         IF (RC ~= 0) THEN DO
  139.             ADPRO_TO_FRONT
  140.             OKAY1 "Error during load." || NL ||,
  141.                 fname.num || NL ||,
  142.                 "frame # " || num2
  143.             CALL ErrorOut 10
  144.         END
  145.  
  146.         SAVER "ANIM" destName "APPEND" "IMAGE"
  147.         IF (RC ~= 0) THEN DO
  148.             ADPRO_TO_FRONT
  149.             OKAY1 "Error writing frame " || num2 || NL ||,
  150.                 "of destination ANIM."
  151.             CALL ErrorOut 10
  152.         END
  153.  
  154.         num2 = num2 + 1
  155.         IF (num2 > numframes) THEN
  156.             continue2 = 1
  157.     END
  158.  
  159.     num = num + 1
  160.     IF (num > numANIMS) THEN
  161.         continue = 1
  162. END
  163.  
  164. IF (wrapDest ~= 0) THEN DO
  165.     SAVER "ANIM" destName "WRAPUP" "IMAGE"
  166.     IF (RC ~= 0) THEN DO
  167.         ADPRO_TO_FRONT
  168.         OKAY1 "Error wraping up destination ANIM."
  169.         CALL ErrorOut 10
  170.     END
  171.     IF (RC ~= 0) THEN DO
  172.         ADPRO_TO_FRONT
  173.         OKAY1 "Error closing up destination ANIM."
  174.         CALL ErrorOut 10
  175.     END
  176. END
  177.  
  178. CALL ErrorOut 0
  179.  
  180.  
  181. ErrorOut:
  182.     PARSE ARG ExitCode
  183.  
  184.     IF (ErrorCode ~= 0) THEN DO
  185.         num = 1
  186.         DO UNTIL (num > numANIMS)
  187.             IF (EXISTS( fname.num )) THEN DO
  188.                 LOADER "ANIM" fname.num "QUIT"
  189.                 IF (RC ~= 0) THEN DO
  190.                     ADPRO_TO_FRONT
  191.                     OKAY1 "Error closing source ANIM:" || NL ||,
  192.                         fname.num || NL || NL ||,
  193.                         "You need to close it" || NL ||,
  194.                         "manually."
  195.                 END
  196.             END
  197.  
  198.             num = num + 1
  199.         END
  200.  
  201.         IF (EXISTS( destName )) THEN DO
  202.             SAVER "ANIM" destName "IMAGE" "QUIT"
  203.             IF (RC ~= 0) THEN DO
  204.                 ADPRO_TO_FRONT
  205.                 OKAY1 "Error closing dest ANIM:" || NL ||,
  206.                     destName || NL || NL ||,
  207.                     "You need to close it" || NL ||,
  208.                     "manually."
  209.             END
  210.         END
  211.     END
  212.  
  213.     IF (EXISTS( TempDefaults )) THEN DO
  214.         LOAD_DEFAULTS TempDefaults
  215.         IF (RC ~= 0) THEN DO
  216.             ADPRO_TO_FRONT
  217.             OKAY1 "Error restoring settings."
  218.         END
  219.  
  220.         ADDRESS COMMAND "Delete >NIL:" TempDefaults
  221.     END
  222.  
  223.     EXIT ExitCode
  224.