From 8a3a3a1db66b5e77cb239561035b73abcb2186a2 Mon Sep 17 00:00:00 2001 From: Nick's Hardware Youtube Channel <56885781+nickshardware@users.noreply.github.com> Date: Fri, 18 Mar 2022 20:35:10 -0400 Subject: [PATCH] R39 Added PutImage+Mask as a single menu export option --- rmabout.lfm | 4 ++-- rmabout.pas | 2 +- rmamigarwxgf.pas | 27 ++++++++++++++++++++++++ rmmain.lfm | 46 ++++++++++++++++++++++++++++++++++++++--- rmmain.pas | 54 +++++++++++++++++++++++++++++++++++++----------- rwpal.pas | 7 ++++--- rwxgf2.pas | 25 ++++++++++++++++++++++ 7 files changed, 144 insertions(+), 21 deletions(-) diff --git a/rmabout.lfm b/rmabout.lfm index 0ef8a4f..6761959 100644 --- a/rmabout.lfm +++ b/rmabout.lfm @@ -5,8 +5,8 @@ object AboutDialog: TAboutDialog Width = 600 BorderStyle = bsDialog Caption = 'About' - ClientHeight = 0 - ClientWidth = 0 + ClientHeight = 313 + ClientWidth = 600 DesignTimePPI = 120 LCLVersion = '2.0.10.0' object ProgramNameLabel: TLabel diff --git a/rmabout.pas b/rmabout.pas index 47a29e0..7c4ef69 100644 --- a/rmabout.pas +++ b/rmabout.pas @@ -8,7 +8,7 @@ interface Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,lclintf; Const - ProgramName ='Raster Master v1.0 Beta R38'; + ProgramName ='Raster Master v1.0 Beta R39'; ProgramLicense = 'Released under MIT License'; type diff --git a/rmamigarwxgf.pas b/rmamigarwxgf.pas index cd3266e..fa72945 100644 --- a/rmamigarwxgf.pas +++ b/rmamigarwxgf.pas @@ -24,6 +24,7 @@ function GetAmigaBitMapSize(width,height,ncolors : integer) : longint; Function WriteAmigaBasicXGFFile(x,y,x2,y2 : word;filename:string):word; Function WriteAmigaBasicXGFDataFile(x,y,x2,y2 : word;filename:string):word; +Function WriteAmigaBasicXGFPlusMaskDataFile(x,y,x2,y2 : word;filename:string):word; Function WriteAmigaPascalBobCodeToFile(x,y,x2,y2 : word;filename:string;SaveAsSprite : Boolean):word; @@ -972,6 +973,32 @@ procedure BitplaneWriterPascalWORDStatements(inByte : Byte; var Buffer : BufferR WriteAmigaBasicXGFDataFile:=IORESULT; end; +Function WriteAmigaBasicXGFPlusMaskDataFile(x,y,x2,y2 : word;filename:string):word; +var + data :BufferRec; + imagename : string; + Error : word; +begin + SetCoreActive; //pull data from RMCore + Imagename:=ExtractFileName(ExtractFileNameWithoutExt(filename)); + + Assign(data.ftext,filename); +{$I-} + Rewrite(data.ftext); + Error:=WriteAmigaBasicXGFDataBuffer(x,y,x2,y2,0,data,Imagename); + Error:=WriteAmigaBasicXGFDataBuffer(x,y,x2,y2,1,data,Imagename+'Mask'); + if Error<>0 then + begin + WriteAmigaBasicXGFPlusMaskDataFile:=Error; + exit; + end; + + Close(data.ftext); +{$I+} + WriteAmigaBasicXGFPlusMaskDataFile:=IORESULT; +end; + + Function WriteAmigaBasicXGFBuffer(x,y,x2,y2 : word;var data :BufferRec):word; var diff --git a/rmmain.lfm b/rmmain.lfm index 3a11e74..93c26fa 100644 --- a/rmmain.lfm +++ b/rmmain.lfm @@ -1,11 +1,11 @@ object RMMainForm: TRMMainForm Left = -9 Height = 1051 - Top = 0 + Top = -9 Width = 1920 Caption = 'Raster Master' - ClientHeight = 0 - ClientWidth = 0 + ClientHeight = 1026 + ClientWidth = 1920 DesignTimePPI = 120 Menu = MainMenu1 OnCreate = FormCreate @@ -402,6 +402,10 @@ object RMMainForm: TRMMainForm Caption = 'Put Data Statements' OnClick = AmigaBasicClick end + object ABPutPlusMaskData: TMenuItem + Caption = 'Put+Mask Data Statements' + OnClick = AmigaBasicClick + end object ABBobData: TMenuItem Caption = 'Bob Data Statements' OnClick = AmigaBasicClick @@ -451,6 +455,10 @@ object RMMainForm: TRMMainForm Caption = 'Put Data Statements' OnClick = FreeBASICClick end + object FBPutPlusMaskData: TMenuItem + Caption = 'Put+Mask Data Statements' + OnClick = FreeBASICClick + end object FBPutFile: TMenuItem Caption = 'Put File' OnClick = FreeBASICClick @@ -462,6 +470,10 @@ object RMMainForm: TRMMainForm Caption = 'PutImage Array' OnClick = FreePascalClick end + object FPPutImagePlusMaskArray: TMenuItem + Caption = 'PutImage+Mask Array' + OnClick = FreePascalClick + end object FPPutImageFile: TMenuItem Caption = 'PutImage File' OnClick = FreePascalClick @@ -473,6 +485,10 @@ object RMMainForm: TRMMainForm Caption = 'Put Data Statements' OnClick = GWBASICClick end + object GWPutPlusMaskData: TMenuItem + Caption = 'Put+Mask Data Statements' + OnClick = GWBASICClick + end object GWPutFile: TMenuItem Caption = 'Put File' OnClick = GWBASICClick @@ -495,6 +511,10 @@ object RMMainForm: TRMMainForm Caption = 'Put Data Statements' OnClick = QBasicDataClick end + object QBPutPlusMaskData: TMenuItem + Caption = 'Put+Mask Data Statements' + OnClick = QBasicDataClick + end object QBPutFile: TMenuItem Caption = 'Put File' OnClick = QBasicDataClick @@ -506,6 +526,10 @@ object RMMainForm: TRMMainForm Caption = '_putimage array' OnClick = QuickCClick end + object QCPutImagePlusMaskArray: TMenuItem + Caption = '_putimage+Mask array' + OnClick = QuickCClick + end object QCPutImageFile: TMenuItem Caption = '_putimage File' OnClick = QuickCClick @@ -517,6 +541,10 @@ object RMMainForm: TRMMainForm Caption = 'PutImage Array' OnClick = QuickPascalClick end + object QPPutImagePlusMaskArray: TMenuItem + Caption = 'PutImage+Mask Array' + OnClick = QuickPascalClick + end object QPPutImageFile: TMenuItem Caption = 'PutImage File' OnClick = QuickPascalClick @@ -528,6 +556,10 @@ object RMMainForm: TRMMainForm Caption = 'Put Data Statements' OnClick = TurboPowerBasicClick end + object TBPutPlusMaskData: TMenuItem + Caption = 'Put+Mask Data Statements' + OnClick = TurboPowerBasicClick + end object TBPutFile: TMenuItem Caption = 'Put File' OnClick = TurboPowerBasicClick @@ -539,6 +571,10 @@ object RMMainForm: TRMMainForm Caption = 'PutImage Array' OnClick = TurboPascalClick end + object TPPutImagePlusMaskArray: TMenuItem + Caption = 'PutImage+Mask Array' + OnClick = TurboPascalClick + end object TPPutImageFile: TMenuItem Caption = 'PutImage File' OnClick = TurboPascalClick @@ -566,6 +602,10 @@ object RMMainForm: TRMMainForm Caption = 'putimage Array' OnClick = TurboCClick end + object TCPutImagePlusMaskArray: TMenuItem + Caption = 'putimage+Mask Array' + OnClick = TurboCClick + end object TCPutImageFile: TMenuItem Caption = 'putimage File' OnClick = TurboCClick diff --git a/rmmain.pas b/rmmain.pas index ba9a579..d95cb3a 100644 --- a/rmmain.pas +++ b/rmmain.pas @@ -45,6 +45,16 @@ TRMMainForm = class(TForm) ExportPropsMenu: TPopupMenu; ExportRESInclude: TMenuItem; ExportRESBinary: TMenuItem; + ABPutPlusMaskData: TMenuItem; + FBPutPlusMaskData: TMenuItem; + FPPutImagePlusMaskArray: TMenuItem; + GWPutPlusMaskData: TMenuItem; + TCPutImagePlusMaskArray: TMenuItem; + TBPutPlusMaskData: TMenuItem; + QPPutImagePlusMaskArray: TMenuItem; + QCPutImagePlusMaskArray: TMenuItem; + QBPutPlusMaskData: TMenuItem; + TPPutImagePlusMaskArray: TMenuItem; TCDOSLBMArray: TMenuItem; TCDOSLBMFile: TMenuItem; TCDOSPBMArray: TMenuItem; @@ -1989,7 +1999,8 @@ procedure TRMMainForm.QBasicDataClick(Sender: TObject); GetOpenSaveRegion(x,y,x2,y2); ExportDialog.FileName:=''; Case (Sender As TMenuItem).Name of 'QBPutData' :ExportDialog.Filter := 'QuickBasic\QB64 Put Data Statements|*.bas'; - 'QBPutFile' : ExportDialog.Filter := 'QuickBasic\QB64 Put File|*.xgf'; + 'QBPutPlusMaskData' :ExportDialog.Filter := 'QuickBasic\QB64 Put+Mask Data Statements|*.bas'; + 'QBPutFile' : ExportDialog.Filter := 'QuickBasic\QB64 Put File|*.xgf'; End; if ExportDialog.Execute then @@ -2002,6 +2013,7 @@ procedure TRMMainForm.QBasicDataClick(Sender: TObject); end; Case (Sender As TMenuItem).Name of 'QBPutData' : error:=WriteDat(x,y,x2,y2,sourcemode,QBLan,ExportDialog.FileName); + 'QBPutPlusMaskData' : error:=WriteXgfWithMaskToCode(x,y,x2,y2,QBLan,ExportDialog.FileName); 'QBPutFile' : error:=WriteXGF(x,y,x2,y2,QBLan,ExportDialog.FileName); End; @@ -2022,7 +2034,8 @@ procedure TRMMainForm.TurboPascalClick(Sender: TObject); begin GetOpenSaveRegion(x,y,x2,y2); Case (Sender As TMenuItem).Name of 'TPPutImageArray' :ExportDialog.Filter := 'Turbo Pascal PutImage Array|*.pas'; - 'TPPutImageFile' : ExportDialog.Filter := 'Turbo Pascal PutImage File|*.xgf'; + 'TPPutImagePlusMaskArray' :ExportDialog.Filter := 'Turbo Pascal PutImage+Mask Array|*.pas'; + 'TPPutImageFile' : ExportDialog.Filter := 'Turbo Pascal PutImage File|*.xgf'; 'TPDOSLBMArray' : ExportDialog.Filter := 'Turbo Pascal DOS Xlib LBM Array|*.pas'; 'TPDOSLBMFile' : ExportDialog.Filter := 'Turbo Pascal DOS Xlib LBM File|*.lbm'; 'TPDOSPBMArray' : ExportDialog.Filter := 'Turbo Pascal DOS Xlib PBM Array|*.pas'; @@ -2041,7 +2054,8 @@ procedure TRMMainForm.TurboPascalClick(Sender: TObject); end; Case (Sender As TMenuItem).Name of 'TPPutImageArray' : error:=WriteDat(x,y,x2,y2,SourceMode,TPLan,ExportDialog.FileName); - 'TPPutImageFile' : error:=WriteXGF(x,y,x2,y2,TPLan,ExportDialog.FileName); + 'TPPutImagePlusMaskArray' : error:=WriteXgfWithMaskToCode(x,y,x2,y2,TPLan,ExportDialog.FileName); + 'TPPutImageFile' : error:=WriteXGF(x,y,x2,y2,TPLan,ExportDialog.FileName); 'TPDOSLBMArray' : error:=WriteLBMToCode(x,y,x2,y2,TPLan,ExportDialog.FileName); 'TPDOSLBMFile' : error:=WriteLBMToFile(x,y,x2,y2,ExportDialog.FileName); 'TPDOSPBMArray' : error:=WritePBMToCode(x,y,x2,y2,TPLan,ExportDialog.FileName); @@ -2066,7 +2080,8 @@ procedure TRMMainForm.FreePascalClick(Sender: TObject); begin GetOpenSaveRegion(x,y,x2,y2); Case (Sender As TMenuItem).Name of 'FPPutImageArray' :ExportDialog.Filter := 'FreePascal PutImage Array|*.pas'; - 'FPPutImageFile' : ExportDialog.Filter := 'FreePascal PutImage File|*.xgf'; + 'FPPutImagePlusMaskArray' :ExportDialog.Filter := 'FreePascal PutImage+Mask Array|*.pas'; + 'FPPutImageFile' :ExportDialog.Filter := 'FreePascal PutImage File|*.xgf'; End; if ExportDialog.Execute then @@ -2079,6 +2094,7 @@ procedure TRMMainForm.FreePascalClick(Sender: TObject); end; Case (Sender As TMenuItem).Name of 'FPPutImageArray' : error:=WriteDat(x,y,x2,y2,SourceMode,FPLan,ExportDialog.FileName); + 'FPPutImagePlusMaskArray' : error:=WriteXgfWithMaskToCode(x,y,x2,y2,FPLan,ExportDialog.FileName); 'FPPutImageFile' : error:=WriteXGF(x,y,x2,y2,FPLan,ExportDialog.FileName); End; @@ -2099,7 +2115,8 @@ procedure TRMMainForm.GWBASICClick(Sender: TObject); begin GetOpenSaveRegion(x,y,x2,y2); Case (Sender As TMenuItem).Name of 'GWPutData' :ExportDialog.Filter := 'GWBASIC Put Data Statements|*.bas'; - 'GWPutFile' : ExportDialog.Filter := 'GWBASIC Put File|*.xgf'; + 'GWPutPlusMaskData' :ExportDialog.Filter := 'GWBASIC Put+Mask Data Statements|*.bas'; + 'GWPutFile' :ExportDialog.Filter := 'GWBASIC Put File|*.xgf'; End; if ExportDialog.Execute then @@ -2111,6 +2128,7 @@ procedure TRMMainForm.GWBASICClick(Sender: TObject); PaletteModeEGA,PaletteModeVGA:sourcemode:=Source16; end; Case (Sender As TMenuItem).Name of 'GWPutData' : error:=WriteDat(x,y,x2,y2,SourceMode,GWLan,ExportDialog.FileName); + 'GWPutPlusMaskData' : error:=WriteXgfWithMaskToCode(x,y,x2,y2,GWLan,ExportDialog.FileName); 'GWPutFile' : error:=WriteXGF(x,y,x2,y2,GWLan,ExportDialog.FileName); End; @@ -2328,11 +2346,13 @@ procedure TRMMainForm.QuickPascalClick(Sender: TObject); begin GetOpenSaveRegion(x,y,x2,y2); Case (Sender As TMenuItem).Name of 'QPPutImageArray' :ExportDialog.Filter := 'Quick Pascal PutImage Array|*.pas'; - 'QPPutImageFile' : ExportDialog.Filter := 'Quick Pascal PutImage File|*.xgf'; + 'QPPutImagePlusMaskArray' :ExportDialog.Filter := 'Quick Pascal PutImage+Mask Array|*.pas'; + 'QPPutImageFile' :ExportDialog.Filter := 'Quick Pascal PutImage File|*.xgf'; End; if ExportDialog.Execute then begin Case (Sender As TMenuItem).Name of 'QPPutImageArray' : error:=WriteXgfToCode(x,y,x2,y2,QPLan,ExportDialog.FileName); + 'QPPutImagePlusMaskArray' : error:=WriteXgfWithMaskToCode(x,y,x2,y2,QPLan,ExportDialog.FileName); 'QPPutImageFile' : error:=WriteXGFToFile(x,y,x2,y2,QPLan,ExportDialog.FileName); End; @@ -2437,7 +2457,8 @@ procedure TRMMainForm.QuickCClick(Sender: TObject); begin GetOpenSaveRegion(x,y,x2,y2); Case (Sender As TMenuItem).Name of 'QCPutImageArray' :ExportDialog.Filter := 'Quick C _putimage Array|*.c'; - 'QCPutImageFile' : ExportDialog.Filter := 'Quick C _putimage File|*.xgf'; + 'QCPutImagePlusMaskArray' :ExportDialog.Filter := 'Quick C _putimage+Mask Array|*.c'; + 'QCPutImageFile' :ExportDialog.Filter := 'Quick C _putimage File|*.xgf'; End; if ExportDialog.Execute then @@ -2450,6 +2471,7 @@ procedure TRMMainForm.QuickCClick(Sender: TObject); end; Case (Sender As TMenuItem).Name of 'QCPutImageArray' : error:=WriteDat(x,y,x2,y2,SourceMode,QCLan,ExportDialog.FileName); + 'QCPutImagePlusMaskArray' : error:=WriteXgfWithMaskToCode(x,y,x2,y2,QCLan,ExportDialog.FileName); 'QCPutImageFile' : error:=WriteXGF(x,y,x2,y2,QCLan,ExportDialog.FileName); End; @@ -2470,6 +2492,7 @@ procedure TRMMainForm.TurboCClick(Sender: TObject); begin GetOpenSaveRegion(x,y,x2,y2); Case (Sender As TMenuItem).Name of 'TCPutImageArray' :ExportDialog.Filter := 'Turbo C putimage Array|*.c'; + 'TCPutImagePlusMaskArray' :ExportDialog.Filter := 'Turbo C putimage+Mask Array|*.c'; 'TCPutImageFile' : ExportDialog.Filter := 'Turbo C putimage File|*.xgf'; 'TCDOSLBMFile' : ExportDialog.Filter := 'Turbo C DOS Xlib LBM File|*.lbm'; 'TCDOSPBMFile' : ExportDialog.Filter := 'Turbo C DOS Xlib PBM File|*.pbm'; @@ -2487,6 +2510,7 @@ procedure TRMMainForm.TurboCClick(Sender: TObject); end; Case (Sender As TMenuItem).Name of 'TCPutImageArray' : error:=WriteDat(x,y,x2,y2,SourceMode,TCLan,ExportDialog.FileName); + 'TCPutImagePlusMaskArray' : error:=WriteXgfWithMaskToCode(x,y,x2,y2,TCLan,ExportDialog.FileName); 'TCPutImageFile' : error:=WriteXGF(x,y,x2,y2,TCLan,ExportDialog.FileName); 'TCDOSLBMArray' : error:=WriteLBMToCode(x,y,x2,y2,TCLan,ExportDialog.FileName); 'TCDOSLBMFile' : error:=WriteLBMToFile(x,y,x2,y2,ExportDialog.FileName); @@ -2511,8 +2535,9 @@ procedure TRMMainForm.TurboPowerBasicClick(Sender: TObject); error : word; begin GetOpenSaveRegion(x,y,x2,y2); - Case (Sender As TMenuItem).Name of 'TBPutData' :ExportDialog.Filter := 'Turbo\Power Basic Data Statements|*.bas'; - 'TBPutFile' : ExportDialog.Filter := 'Turbo\Power Basic Put File|*.xgf'; + Case (Sender As TMenuItem).Name of 'TBPutData' :ExportDialog.Filter := 'Turbo\Power Basic Put Data Statements|*.bas'; + 'TBPutPlusMaskData' :ExportDialog.Filter := 'Turbo\Power Basic Put+Mask Data Statements|*.bas'; + 'TBPutFile' :ExportDialog.Filter := 'Turbo\Power Basic Put File|*.xgf'; End; @@ -2526,6 +2551,7 @@ procedure TRMMainForm.TurboPowerBasicClick(Sender: TObject); end; Case (Sender As TMenuItem).Name of 'TBPutData' : error:=WriteDat(x,y,x2,y2,SourceMode,PBLan,ExportDialog.FileName); + 'TBPutPlusMaskData' : error:=WriteXgfWithMaskToCode(x,y,x2,y2,PBLan,ExportDialog.FileName); 'TBPutFile' : WriteXGF(x,y,x2,y2,PBLan,ExportDialog.FileName); End; @@ -2545,8 +2571,9 @@ procedure TRMMainForm.FreeBASICClick(Sender: TObject); error : word; begin GetOpenSaveRegion(x,y,x2,y2); - Case (Sender As TMenuItem).Name of 'FBPutData' :ExportDialog.Filter := 'FreeBASIC Data Statements|*.bas'; - 'FBPutFile' : ExportDialog.Filter := 'FreeBASIC Put File|*.xgf'; + Case (Sender As TMenuItem).Name of 'FBPutData' :ExportDialog.Filter := 'FreeBASIC Put Data Statements|*.bas'; + 'FBPutPlusMaskData' :ExportDialog.Filter := 'FreeBASIC Put+Mask Data Statements|*.bas'; + 'FBPutFile' :ExportDialog.Filter := 'FreeBASIC Put File|*.xgf'; End; if ExportDialog.Execute then @@ -2559,6 +2586,7 @@ procedure TRMMainForm.FreeBASICClick(Sender: TObject); end; Case (Sender As TMenuItem).Name of 'FBPutData' : error:=WriteDat(x,y,x2,y2,SourceMode,FBLan,ExportDialog.FileName); + 'FBPutPlusMaskData' : error:=WriteXgfWithMaskToCode(x,y,x2,y2,FBLan,ExportDialog.FileName); 'FBPutFile' : error:=WriteXGF(x,y,x2,y2,FBLan,ExportDialog.FileName); End; @@ -2585,7 +2613,8 @@ procedure TRMMainForm.AmigaBasicClick(Sender: TObject); exit; end; - Case (Sender As TMenuItem).Name of 'ABPutData' :ExportDialog.Filter := 'AmigaBASIC Data Statements|*.bas'; + Case (Sender As TMenuItem).Name of 'ABPutData' :ExportDialog.Filter := 'AmigaBASIC Put Data Statements|*.bas'; + 'ABPutPlusMaskData' :ExportDialog.Filter := 'AmigaBASIC Put+Mask Data Statements|*.bas'; 'ABBobData' : ExportDialog.Filter := 'AmigaBASIC Bob Data Statements|*.bas'; 'ABVSpriteData' : ExportDialog.Filter := 'AmigaBASIC VSprite Data Statements|*.bas'; 'ABPutFile' : ExportDialog.Filter := 'AmigaBASIC Put File|*.xgf'; @@ -2596,6 +2625,7 @@ procedure TRMMainForm.AmigaBasicClick(Sender: TObject); if ExportDialog.Execute then begin Case (Sender As TMenuItem).Name of 'ABPutData' : error:=WriteAmigaBasicXGFDataFile(x,y,x2,y2,ExportDialog.FileName); + 'ABPutPlusMaskData' : error:=WriteAmigaBasicXGFPlusMaskDataFile(x,y,x2,y2,ExportDialog.FileName); 'ABBobData' : error:=WriteAmigaBasicBobDataFile(x,y,x2,y2,ExportDialog.FileName,false); 'ABVSpriteData' : error:=WriteAmigaBasicBobFile(x,y,x2,y2,ExportDialog.FileName,true); 'ABPutFile' : error:=WriteAmigaBasicXGFFile(x,y,x2,y2,ExportDialog.FileName); diff --git a/rwpal.pas b/rwpal.pas index dbca2e0..d584057 100644 --- a/rwpal.pas +++ b/rwpal.pas @@ -164,7 +164,7 @@ function WritePalData(filename : string; Lan,rgbFormat : integer) : word; Rewrite(F); NColors:=GetMaxColor+1; BFormat:=ColorFormatToStr(rgbFormat); - Writeln(F,CommentBeginToStr(Lan),' ',LanToStr(Lan),' Palette, ',' Size= ',GetPalSize(nColors,rgbFormat),' Colors= ',NColors, 'Format= ',BFormat); + Writeln(F,LineCountToStr(Lan),CommentBeginToStr(Lan),' ',LanToStr(Lan),' Palette, ',' Size= ',GetPalSize(nColors,rgbFormat),' Colors= ',NColors, 'Format= ',BFormat); For i:=0 to NColors-1 do begin (* @@ -306,7 +306,7 @@ function WritePalStatements(filename : string; Lan,rgbFormat : integer) : word; pcmdstr:=PaletteCmdToStr(Lan,rgbFormat); LineTrmStr:=LineTrmToStr(Lan); // LineCounter:=1000; - Writeln(F,CommentBeginToStr(Lan),' ',LanToStr(Lan),' Palette Commands, ',' Size= ',GetPalSize(nColors,rgbFormat),' Colors= ',NColors,' Format=',BFormat,' ',CommentEndToStr(Lan)); + Writeln(F,LineCountToStr(Lan),CommentBeginToStr(Lan),' ',LanToStr(Lan),' Palette Commands, ',' Size= ',GetPalSize(nColors,rgbFormat),' Colors= ',NColors,' Format=',BFormat,' ',CommentEndToStr(Lan)); For i:=0 to NColors-1 do begin (* r:=RMCoreBase.Palette.GetRed(i); @@ -574,7 +574,7 @@ function WritePalBasicBuffer(var data : BufferRec; imagename : string; Lan,rgbFo NColors:=GetMaxColor+1; BFormat:=ColorFormatToStr(rgbFormat); - Writeln(data.fText,CommentBeginToStr(Lan),' ',LanToStr(Lan),' Palette, ',' Size= ',GetPalSize(nColors,rgbFormat),' Colors= ',NColors,' Format=',BFormat); + Writeln(data.fText,LineCountToStr(Lan),CommentBeginToStr(Lan),' ',LanToStr(Lan),' Palette, ',' Size= ',GetPalSize(nColors,rgbFormat),' Colors= ',NColors,' Format=',BFormat); For i:=0 to NColors-1 do begin (* @@ -733,6 +733,7 @@ function WritePalToArrayFile(filename : string; Lan,rgbFormat : integer) : word; imagename : string; begin SetCoreActive; + SetGWStartLineNumber(1000); {$I-} Assign(data.fText,filename); Rewrite(data.fText); diff --git a/rwxgf2.pas b/rwxgf2.pas index 46b67c3..db62a54 100644 --- a/rwxgf2.pas +++ b/rwxgf2.pas @@ -71,8 +71,12 @@ BitPlaneWriterProc = Procedure(inByte : Byte; var Buffer : BufferRec; action : integer); Function WriteXgfToCode(x,y,x2,y2,LanType : word;filename:string):word; + + Function WriteXgfWithMaskToCode(x,y,x2,y2,LanType : word;filename:string):word; + Function WriteXgfToFile(x,y,x2,y2,LanType : word;filename:string):word; + procedure WriteXgfToBuffer(x,y,x2,y2,LanType,Mask : word;var data : BufferRec); // to binary file procedure WriteXgfToBufferFP(x,y,x2,y2,Mask : word;var data : BufferRec); procedure WriteXgfToBufferFB(x,y,x2,y2,Mask : word;var data : BufferRec); @@ -1016,6 +1020,27 @@ procedure WriteXgfToBufferFP(x,y,x2,y2,Mask : word;var data : BufferRec); WriteXgfToCode:=IOResult; end; +Function WriteXgfWithMaskToCode(x,y,x2,y2,LanType : word;filename:string):word; +var + data : BufferRec; + imagename : String; +begin + SetCoreActive; // we are getting data from core object RMCoreBase + SetGWStartLineNumber(1000); + assign(data.fText,filename); +{$I-} + rewrite(data.fText); + + Imagename:=ExtractFileName(ExtractFileNameWithoutExt(filename)); + WriteXGFCodeToBuffer(data,x,y,x2,y2,LanType,0,imagename); + WriteXGFCodeToBuffer(data,x,y,x2,y2,LanType,1,imagename+'Mask'); //mask + + close(data.fText); + {$I+} + WriteXgfWithMaskToCode:=IOResult; +end; + + //write a single binary file Function WriteXgfToFile(x,y,x2,y2,LanType : word;filename:string):word; var