/* SaveSprites.agaiff * * Saves as many 16 pixels wide sprites as needed to build up a sprite logo * with the selected range width, that means if you want to display sprite * gfx with 48 pixels width on the old chipset, you NORMALLY need to save * 3 sprites on your own... */ lf = "a"X /* Linefeed character */ address "AGAIFF_REXX" options results SHOWGUI if RC ~= 0 then exit STATUS 0 if result = "" then do TYPETEXT "No picture loaded..." exit end /* Get picture data */ STATUS 3 parse var result RangeX1 RangeY1 RangeX2 RangeY2 STATUS 2 parse var result Depth Height = RangeY2-RangeY1+1 Width = RangeX2-RangeX1+1 NumberOfSprites = (Width+15)%16 select when Depth=2 then do if NumberOfSprites>8 then do TYPETEXT "Maximum range (2 planes) is 8 sprites (128 pixels)" exit end end when Depth=4 then do if NumberOfSprites>4 then do TYPETEXT "Maximum range (4 planes) is 4 sprites (64 pixels)" exit end end otherwise do TYPETEXT "2 or 4 planes please !" exit end end SETPRESET "Sprite dc." REQUEST "Save as assembler source (OK)" || lf || "or data file (CANCEL) ?" if RC = 0 then SFORMAT FILE REQUESTFILE "Save filename w/ suffix" pathname = result if pathname = "" then exit; NOSHOW rx1 = RangeX1 do i=0 for NumberOfSprites RANGE rx1 RangeY1 rx1+15 RangeY2 SAVE pathname || "." || i rx1 = rx1 + 16 end RANGE RangeX1 RangeY1 RangeX2 RangeY2 RESHOW SHOWGUI TYPETEXT "Okidoki..."