home *** CD-ROM | disk | FTP | other *** search
- /*
- ** ReRenderANIM.adpro
- **
- ** $VER: ReRenderANIM.adpro 1.5.1 (17.1.94)
- **
- ** This AREXX program will take an existing ANIM file and rerender it
- ** according to the user's specifications.
- **
- ** This script requires ADPro v2.5.0 (or higher).
- **
- ** Copyright © 1993-1994 ASDG, Incorporated
- ** All Rights Reserved
- */
-
-
- ADDRESS "ADPro"
- OPTIONS RESULTS
-
- NL = '0A'X
- SQ = '27'X
- DQ = '22'X
- TRUE = 1
- FALSE = 0
- TempDefaults = "T:TempADProDefaults"
-
-
- /*
- ** Save the current environment.
- */
-
- SAVE_DEFAULTS TempDefaults
-
-
- PSTATUS "UNLOCKED"
-
-
- /*
- ** Select the file to rerender.
- */
-
- CALL "FREDSCRIPTS:FREDFunctions/GetAFile" '"Enter ANIM To ReRender"' '"ADPRO:"' '""""' TRUE
- IF (RESULT = DQ||DQ) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Error, no source ANIM specified."
- CALL ErrorOut 10
- END
- SrcANIMFName = RESULT
-
-
- /*
- ** Select the screen mode.
- */
-
- ADPRO_TO_FRONT
-
- GET_SCREEN_MODE '"Select Render Screen"' "Amiga" "XXX" 0 0 16
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Could not select render screen."
- SCREEN_TO_FRONT "FRED"
- CALL ErrorOut 10
- END
-
- RenderScreen = ADPRO_RESULT
-
-
- /*
- ** Ask the user to select the dither mode to use.
- */
-
- GETLIST DITHERS
- String = ADPRO_RESULT
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Could not retrieve" || NL ||,
- "dither list."
- CALL ErrorOut 10
- END
-
- continue = 0
- DO UNTIL (continue = 1)
- ADPRO_TO_FRONT
-
- LISTVIEW '"Dithers Available:"' 10 ITEMS String
- LISTVIEW_RC = RC
- PARSE VAR ADPRO_RESULT '"'DitherModeStr'"' scratch
-
- IF (LISTVIEW_RC ~= 0) & (LISTVIEW_RC ~= 1) THEN DO
- ADPRO_TO_FRONT
-
- OKAYN '"ReRenderANIM"' '"This value is required."' '"Retry|Cancel"'
- IF (RC = 0) THEN
- CALL ErrorOut 10
- END
- ELSE
- continue = 1
- END
-
- IF (DitherModeStr = "Off") THEN /* Off */
- DitherMode = 0
- ELSE IF (DitherModeStr = "Floyd (1)") THEN /* Floyd (1) */
- DitherMode = 1
- ELSE IF (DitherModeStr = "Burkes (2)") THEN /* Burkes (2) */
- DitherMode = 2
- ELSE IF (DitherModeStr = "Sierra (3)") THEN /* Sierra (3) */
- DitherMode = 3
- ELSE IF (DitherModeStr = "Jarvis (4)") THEN /* Jarvis (4) */
- DitherMode = 4
- ELSE IF (DitherModeStr = "Stucki (5)") THEN /* Stucki (5) */
- DitherMode = 5
- ELSE IF (DitherModeStr = "Random (6)") THEN /* Random (6) */
- DitherMode = 6
- ELSE IF (DitherModeStr = "Lg Ord (7)") THEN /* Lg Ord (7) */
- DitherMode = 7
- ELSE IF (DitherModeStr = "Sm Ord (8)") THEN /* Sm Ord (8) */
- DitherMode = 8
- ELSE
- DitherMode = 0
-
-
- /*
- ** If dither is Random or Ordered, get the Dither Amount.
- */
-
- IF (DitherMode = 6) | (DitherMode = 7) | (DitherMode = 8) THEN DO
- CALL "FREDSCRIPTS:FREDFunctions/GetAFloat" '"Enter Dither Amount"' 16 1 256 TRUE
- IF (RESULT = (1-1)) THEN
- CALL ErrorOut 10
- DitherAmt = RESULT
- END
-
- CALL "FREDSCRIPTS:FREDFunctions/GetAFile" '"Enter name of ANIM file to create"' '"ADPRO:"' '""""' TRUE
- IF (RESULT = DQ||DQ) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Error, no dest ANIM specified."
- CALL ErrorOut 10
- END
- DestANIMFName = RESULT
-
- IF (EXISTS( DestANIMFName )) THEN DO
- ADPRO_TO_FRONT
-
- OKAYN '"ReRenderANIM"' '"Truncate destination ANIM?"' '"Start New File|Append To File|Cancel"'
- IF (RC = 0) THEN DO
- CALL ErrorOut 10
- END
- ELSE IF (RC = 1) THEN DO
- IMAGE_TYPE
- ImageType = ADPRO_RESULT
- IF (WORD( ImageType, 1 ) = "NONE") THEN DO
- LOADER "BACKDROP" "XXX" "WIDTH" 10 "HEIGHT" 10 "COLOR"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Unable to create temp image." || NL ||,
- "Argument Information:" || NL||,
- "Width = " || 10 || NL ||,
- "Height = " || 10 || NL ||,
- "Type = " || "COLOR"
- CALL ErrorOut 10
- END
- END
-
- IF (WORD( ImageType, 1 ) ~= "BITPLANE") THEN DO
- EXECUTE
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Unable to create temp rendered data."
- CALL ErrorOut 10
- END
- END
-
- SAVER "ANIM" DestANIMFName "IMAGE" "QUIT"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Could not close current ANIM file." || NL ||,
- "Argument Information:" || NL ||,
- "Filename = " || DestANIMFName || NL ||,
- "Type = " || "IMAGE" || NL ||,
- "Flags = " || "QUIT"
- CALL ErrorOut 10
- END
-
- ADDRESS COMMAND "Delete >NIL:" DestANIMFName
- END
- END
-
- LOADER "ANIM" SrcANIMFName "COUNT"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Can't find ANIM file."
- CALL ErrorOut 10
- END
-
- NumFrames = ADPRO_RESULT
-
-
- /*
- ** Ask which frames to process.
- */
-
- CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"Starting frame"' 1 1 NumFrames TRUE
- StartFrame = RESULT
- IF (StartFrame = (1-1)) THEN
- CALL ErrorOut 10
-
- CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"Ending frame"' NumFrames StartFrame NumFrames TRUE
- EndFrame = RESULT
- IF (EndFrame = (StartFrame-1)) THEN
- CALL ErrorOut 10
-
-
- LOADER "ANIM" SrcANIMFName "FRAME" 1
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Cannot find source ANIM."
- CALL ErrorOut 10
- END
-
- PSTATUS "LOCKED"
-
- SCREEN_TYPE
- oldSType = ADPRO_RESULT
- SCREEN_TYPE ADPRO_RESULT
-
- CurrFrameNum = StartFrame
- continue = FALSE
- DO WHILE (continue = FALSE)
- LOADER "ANIM" SrcANIMFName "FRAME" CurrFrameNum
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Error during load" || NL ||,
- "of frame " || CurrFrameNum || "."
- CALL ErrorOut 10
- END
-
- SET_RENDER_MODE RenderScreen
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Could not set render screen:" || NL || RenderScreen
- SCREEN_TO_FRONT "FRED"
- CALL ErrorOut 10
- END
-
- DITHER DitherMode
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Dither mode not supported." || NL || ADPRO_RESULT
- CALL ErrorOut 10
- END
-
- IF (DitherMode = 6) | (DitherMode = 7) | (DitherMode = 8) THEN DO
- DITHER_AMOUNT DitherAmt
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Dither amount not supported." || NL || ADPRO_RESULT
- CALL ErrorOut 10
- END
- END
-
- EXECUTE
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Error creating rendered data."
- CALL ErrorOut 10
- END
-
- SAVER "ANIM" DestANIMFName "APPEND" "IMAGE"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Error during load" || NL ||,
- "of frame " || CurrFrameNum || "."
- CALL ErrorOut 10
- END
-
- CurrFrameNum = CurrFrameNum + 1
- IF (CurrFrameNum > EndFrame) THEN
- continue = TRUE
- END
-
- SAVER "ANIM" DestANIMFName "QUIT" "IMAGE"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Error closing dest ANIM."
- CALL ErrorOut 10
- END
-
- CALL ErrorOut 0
-
-
- ErrorOut:
- PARSE ARG ExitCode
-
- IF (EXISTS( SrcANIMFName )) & (ErrorCode ~= 0) THEN DO
- LOADER "ANIM" SrcANIMFName "QUIT"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Error closing source ANIM:" || NL ||,
- SrcANIMFName || NL || NL ||,
- "You need to close it" || NL ||,
- "manually."
- END
- END
-
- IF (EXISTS( DestANIMFName )) & (ErrorCode ~= 0) THEN DO
- SAVER "ANIM" DestANIMFName "IMAGE" "QUIT"
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Error closing dest ANIM:" || NL ||,
- DestANIMFName || NL || NL ||,
- "You need to close it" || NL ||,
- "manually."
- END
- END
-
- IF (EXISTS( TempDefaults )) THEN DO
- LOAD_DEFAULTS TempDefaults
- IF (RC ~= 0) THEN DO
- ADPRO_TO_FRONT
- OKAY1 "Error restoring settings."
- END
-
- ADDRESS COMMAND "Delete >NIL:" TempDefaults
- END
-
- EXIT ExitCode
-