Skip to content

Commit

Permalink
R39 Added PutImage+Mask as a single menu export option
Browse files Browse the repository at this point in the history
  • Loading branch information
RetroNick2020 committed Mar 19, 2022
1 parent 83644f9 commit 8a3a3a1
Show file tree
Hide file tree
Showing 7 changed files with 144 additions and 21 deletions.
4 changes: 2 additions & 2 deletions rmabout.lfm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion rmabout.pas
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
27 changes: 27 additions & 0 deletions rmamigarwxgf.pas
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
46 changes: 43 additions & 3 deletions rmmain.lfm
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
54 changes: 42 additions & 12 deletions rmmain.pas
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand All @@ -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;

Expand All @@ -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';
Expand All @@ -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);
Expand All @@ -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
Expand All @@ -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;

Expand All @@ -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
Expand All @@ -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;

Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand All @@ -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;

Expand All @@ -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';
Expand All @@ -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);
Expand All @@ -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;


Expand All @@ -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;

Expand All @@ -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
Expand All @@ -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;

Expand All @@ -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';
Expand All @@ -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);
Expand Down
Loading

0 comments on commit 8a3a3a1

Please sign in to comment.