/* ** 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