Commit 59fa72f

Nick Faro committed on
Make TBM menu item work
commit 59fa72f425644404a9828a624dc041e5c0a13c96 parent a28f6d4
3 changed files +40−8
Modifiedtbmimport.pas +3−2
@@ -7,13 +7,14 @@ interface
7 uses 7 uses
8 Classes, SysUtils, song, LazUTF8, HugeDatatypes, Constants, Utils, fgl; 8 Classes, SysUtils, song, LazUTF8, HugeDatatypes, Constants, Utils, fgl;
9 9
10 type
11 ETBMException = class(Exception);
12
10 function LoadSongFromTbmStream(Stream: TStream): TSong; 13 function LoadSongFromTbmStream(Stream: TStream): TSong;
11 14
12 implementation 15 implementation
13 16
14 type 17 type
15 ETBMException = class(Exception);
16
17 TTBMHeader = packed record 18 TTBMHeader = packed record
18 Signature: array[0..11] of Char; // ' TRACKERBOY ' 19 Signature: array[0..11] of Char; // ' TRACKERBOY '
19 VersionMajor: DWord; 20 VersionMajor: DWord;
Modifiedtracker.lfm +14−6
@@ -1,7 +1,7 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 937 2 Left = 1658
3 Height = 857 3 Height = 857
4 Top = 137 4 Top = 153
5 Width = 1318 5 Width = 1318
6 AllowDropFiles = True 6 AllowDropFiles = True
7 Caption = 'hUGETracker' 7 Caption = 'hUGETracker'
@@ -62,10 +62,10 @@ object frmTracker: TfrmTracker
62 Height = 725 62 Height = 725
63 Top = 0 63 Top = 0
64 Width = 1120 64 Width = 1120
65 ActivePage = WavesTabSheet 65 ActivePage = GeneralTabSheet
66 Align = alClient 66 Align = alClient
67 ParentFont = False 67 ParentFont = False
68 TabIndex = 3 68 TabIndex = 0
69 TabOrder = 0 69 TabOrder = 0
70 object GeneralTabSheet: TTabSheet 70 object GeneralTabSheet: TTabSheet
71 Caption = 'General' 71 Caption = 'General'
@@ -2034,6 +2034,7 @@ object frmTracker: TfrmTracker
2034 end 2034 end
2035 object MenuItem42: TMenuItem 2035 object MenuItem42: TMenuItem
2036 Action = FileSave1 2036 Action = FileSave1
2037 Hint = 'Save'
2037 end 2038 end
2038 object MenuItem13: TMenuItem 2039 object MenuItem13: TMenuItem
2039 Action = FileSaveAs1 2040 Action = FileSaveAs1
@@ -2082,6 +2083,7 @@ object frmTracker: TfrmTracker
2082 end 2083 end
2083 object ExportAsmMenuItem: TMenuItem 2084 object ExportAsmMenuItem: TMenuItem
2084 Caption = 'Export RGBDS .asm ...' 2085 Caption = 'Export RGBDS .asm ...'
2086 Hint = 'Export an ASM source file suitable for a RGBDS-based project'
2085 ImageIndex = 83 2087 ImageIndex = 83
2086 OnClick = ExportAsmMenuItemClick 2088 OnClick = ExportAsmMenuItemClick
2087 end 2089 end
@@ -2948,8 +2950,8 @@ object frmTracker: TfrmTracker
2948 object MODOpenDialog: TOpenDialog 2950 object MODOpenDialog: TOpenDialog
2949 DefaultExt = '.mod' 2951 DefaultExt = '.mod'
2950 Filter = 'GBT Player MOD files|*.mod' 2952 Filter = 'GBT Player MOD files|*.mod'
2951 Left = 448 2953 Left = 472
2952 Top = 32 2954 Top = 24
2953 end 2955 end
2954 object WaveEditPopup: TPopupMenu 2956 object WaveEditPopup: TPopupMenu
2955 Left = 8 2957 Left = 8
@@ -3104,4 +3106,10 @@ object frmTracker: TfrmTracker
3104 Left = 356 3106 Left = 356
3105 Top = 52 3107 Top = 52
3106 end 3108 end
3109 object TBMOpenDialog: TOpenDialog
3110 DefaultExt = '.tbm'
3111 Filter = 'TrackerBoy TBM files|*.tbm'
3112 Left = 472
3113 Top = 64
3114 end
3107 end 3115 end
Modifiedtracker.pas +23−0
@@ -45,6 +45,7 @@ type
45 FileSave1: TAction; 45 FileSave1: TAction;
46 MenuItem42: TMenuItem; 46 MenuItem42: TMenuItem;
47 MenuItem55: TMenuItem; 47 MenuItem55: TMenuItem;
48 TBMOpenDialog: TOpenDialog;
48 VGMSaveDialog: TSaveDialog; 49 VGMSaveDialog: TSaveDialog;
49 MenuItem10: TMenuItem; 50 MenuItem10: TMenuItem;
50 TempoBPMLabel: TLabel; 51 TempoBPMLabel: TLabel;
@@ -2027,8 +2028,30 @@ begin
2027 end; 2028 end;
2028 2029
2029 procedure TfrmTracker.MenuItem55Click(Sender: TObject); 2030 procedure TfrmTracker.MenuItem55Click(Sender: TObject);
2031 var
2032 Stream: TStream;
2033 NewSong: TSong;
2030 begin 2034 begin
2035 if not CheckUnsavedChanges then Exit;
2031 2036
2037 if TBMOpenDialog.Execute then begin
2038 try
2039 try
2040 Stream := TFileStream.Create(TBMOpenDialog.FileName, fmOpenRead);
2041 NewSong := LoadSongFromTbmStream(Stream);
2042 DestroySong(Song);
2043 Song := NewSong;
2044 UpdateUIAfterLoad(TBMOpenDialog.FileName);
2045 finally
2046 Stream.Free;
2047 end;
2048 except
2049 on E: ETBMException do begin
2050 MessageDlg('There was an error loading the file. ' + E.Message, mtError, [mbOK], 0);
2051 Exit;
2052 end;
2053 end;
2054 end;
2032 end; 2055 end;
2033 2056
2034 procedure TfrmTracker.FileSave1Execute(Sender: TObject); 2057 procedure TfrmTracker.FileSave1Execute(Sender: TObject);