Commit a639ae6

Nick committed on
WIP order editor, about to start on codegen stuff
commit a639ae69bb9ee013b8e3438781cbd8d5175cdfc8 parent 1bdda8a
5 changed files +83−7
ModifiedGBEmu.lpi +8−2
@@ -75,7 +75,7 @@
75 <PackageName Value="LCL"/> 75 <PackageName Value="LCL"/>
76 </Item10> 76 </Item10>
77 </RequiredPackages> 77 </RequiredPackages>
78 <Units Count="24"> 78 <Units Count="25">
79 <Unit0> 79 <Unit0>
80 <Filename Value="GBEmu.lpr"/> 80 <Filename Value="GBEmu.lpr"/>
81 <IsPartOfProject Value="True"/> 81 <IsPartOfProject Value="True"/>
@@ -198,6 +198,11 @@
198 <IsPartOfProject Value="True"/> 198 <IsPartOfProject Value="True"/>
199 <UnitName Value="HugeDatatypes"/> 199 <UnitName Value="HugeDatatypes"/>
200 </Unit23> 200 </Unit23>
201 <Unit24>
202 <Filename Value="codegen.pas"/>
203 <IsPartOfProject Value="True"/>
204 <UnitName Value="Codegen"/>
205 </Unit24>
201 </Units> 206 </Units>
202 </ProjectOptions> 207 </ProjectOptions>
203 <CompilerOptions> 208 <CompilerOptions>
@@ -210,7 +215,8 @@
210 </SearchPaths> 215 </SearchPaths>
211 <Parsing> 216 <Parsing>
212 <SyntaxOptions> 217 <SyntaxOptions>
213 <SyntaxMode Value="Delphi"/> 218 <CStyleOperator Value="False"/>
219 <CPPInline Value="False"/>
214 </SyntaxOptions> 220 </SyntaxOptions>
215 </Parsing> 221 </Parsing>
216 <CodeGeneration> 222 <CodeGeneration>
Addedcodegen.pas +13−0
@@ -0,0 +1,13 @@
1 unit Codegen;
2
3 {$mode objfpc}
4
5 interface
6
7 uses
8 Classes, SysUtils;
9
10 implementation
11
12 end.
13
Modifiedtracker.lfm +8−4
@@ -1,7 +1,7 @@
1 object frmTracker: TfrmTracker 1 object frmTracker: TfrmTracker
2 Left = 2103 2 Left = 2132
3 Height = 1298 3 Height = 1298
4 Top = 343 4 Top = 374
5 Width = 1893 5 Width = 1893
6 Caption = 'hUGETracker' 6 Caption = 'hUGETracker'
7 ClientHeight = 1268 7 ClientHeight = 1268
@@ -53,10 +53,10 @@ object frmTracker: TfrmTracker
53 Height = 930 53 Height = 930
54 Top = 0 54 Top = 0
55 Width = 1595 55 Width = 1595
56 ActivePage = PatternTabSheet 56 ActivePage = GeneralTabSheet
57 Align = alClient 57 Align = alClient
58 ParentFont = False 58 ParentFont = False
59 TabIndex = 1 59 TabIndex = 0
60 TabOrder = 0 60 TabOrder = 0
61 object GeneralTabSheet: TTabSheet 61 object GeneralTabSheet: TTabSheet
62 Caption = 'General' 62 Caption = 'General'
@@ -260,6 +260,7 @@ object frmTracker: TfrmTracker
260 OnColRowInserted = OrderEditStringGridColRowInserted 260 OnColRowInserted = OrderEditStringGridColRowInserted
261 OnColRowMoved = OrderEditStringGridColRowMoved 261 OnColRowMoved = OrderEditStringGridColRowMoved
262 OnEditingDone = OrderEditStringGridEditingDone 262 OnEditingDone = OrderEditStringGridEditingDone
263 OnKeyDown = OrderEditStringGridKeyDown
263 ColWidths = ( 264 ColWidths = (
264 96 265 96
265 52 266 52
@@ -4286,10 +4287,12 @@ object frmTracker: TfrmTracker
4286 object MenuItem17: TMenuItem 4287 object MenuItem17: TMenuItem
4287 Caption = 'Insert new row' 4288 Caption = 'Insert new row'
4288 Hint = 'Insert a new row filled with brand new patterns' 4289 Hint = 'Insert a new row filled with brand new patterns'
4290 OnClick = MenuItem17Click
4289 end 4291 end
4290 object MenuItem18: TMenuItem 4292 object MenuItem18: TMenuItem
4291 Caption = 'Insert empty row' 4293 Caption = 'Insert empty row'
4292 Hint = 'Insert a new with nothing in it yet' 4294 Hint = 'Insert a new with nothing in it yet'
4295 OnClick = MenuItem18Click
4293 end 4296 end
4294 object MenuItem20: TMenuItem 4297 object MenuItem20: TMenuItem
4295 Caption = '-' 4298 Caption = '-'
@@ -4297,6 +4300,7 @@ object frmTracker: TfrmTracker
4297 object MenuItem19: TMenuItem 4300 object MenuItem19: TMenuItem
4298 Caption = 'Remove row' 4301 Caption = 'Remove row'
4299 Hint = 'Remove a row-- Does not delete the patterns from existence' 4302 Hint = 'Remove a row-- Does not delete the patterns from existence'
4303 OnClick = MenuItem19Click
4300 end 4304 end
4301 end 4305 end
4302 object ImageList2: TImageList 4306 object ImageList2: TImageList
Modifiedtracker.pas +42−1
@@ -9,7 +9,7 @@ uses
9 Menus, Spin, StdCtrls, ActnList, StdActns, SynEdit, math, Instruments, Waves, 9 Menus, Spin, StdCtrls, ActnList, StdActns, SynEdit, math, Instruments, Waves,
10 Song, EmulationThread, Utils, Constants, sound, vars, machine, 10 Song, EmulationThread, Utils, Constants, sound, vars, machine,
11 about_hugetracker, TrackerGrid, lclintf, lmessages, Buttons, Grids, DBCtrls, 11 about_hugetracker, TrackerGrid, lclintf, lmessages, Buttons, Grids, DBCtrls,
12 ECProgressBar, HugeDatatypes; 12 ECProgressBar, HugeDatatypes, LCLType;
13 13
14 type 14 type
15 { TfrmTracker } 15 { TfrmTracker }
@@ -171,6 +171,9 @@ type
171 procedure LengthSpinnerChange(Sender: TObject); 171 procedure LengthSpinnerChange(Sender: TObject);
172 procedure DebugButtonClick(Sender: TObject); 172 procedure DebugButtonClick(Sender: TObject);
173 procedure MenuItem16Click(Sender: TObject); 173 procedure MenuItem16Click(Sender: TObject);
174 procedure MenuItem17Click(Sender: TObject);
175 procedure MenuItem18Click(Sender: TObject);
176 procedure MenuItem19Click(Sender: TObject);
174 procedure MenuItem5Click(Sender: TObject); 177 procedure MenuItem5Click(Sender: TObject);
175 procedure NoiseFreqSpinnerChange(Sender: TObject); 178 procedure NoiseFreqSpinnerChange(Sender: TObject);
176 procedure OrderEditStringGridAfterSelection(Sender: TObject; aCol, 179 procedure OrderEditStringGridAfterSelection(Sender: TObject; aCol,
@@ -184,6 +187,8 @@ type
184 procedure OrderEditStringGridColRowMoved(Sender: TObject; 187 procedure OrderEditStringGridColRowMoved(Sender: TObject;
185 IsColumn: Boolean; sIndex, tIndex: Integer); 188 IsColumn: Boolean; sIndex, tIndex: Integer);
186 procedure OrderEditStringGridEditingDone(Sender: TObject); 189 procedure OrderEditStringGridEditingDone(Sender: TObject);
190 procedure OrderEditStringGridKeyDown(Sender: TObject; var Key: Word;
191 Shift: TShiftState);
187 procedure PanicToolButtonClick(Sender: TObject); 192 procedure PanicToolButtonClick(Sender: TObject);
188 procedure PasteActionExecute(Sender: TObject); 193 procedure PasteActionExecute(Sender: TObject);
189 procedure TicksPerRowSpinEditChange(Sender: TObject); 194 procedure TicksPerRowSpinEditChange(Sender: TObject);
@@ -770,6 +775,36 @@ begin
770 PostMessage(Screen.ActiveControl.Handle, LM_PASTE, 0, 0); 775 PostMessage(Screen.ActiveControl.Handle, LM_PASTE, 0, 0);
771 end; 776 end;
772 777
778 procedure TfrmTracker.MenuItem17Click(Sender: TObject);
779 var
780 X, Highest: Integer;
781 begin
782 Highest := 0;
783 for X := 0 to Orders.Count-1 do
784 if Orders.Keys[X] > Highest then Highest := Orders.Keys[X]+1;
785
786 OrderEditStringGrid.InsertRowWithValues(
787 OrderEditStringGrid.Row,
788 ['',IntToStr(Highest),IntToStr(Highest+1), IntToStr(Highest+2), IntToStr(Highest+3)]
789 );
790
791 for X := 0 to 3 do
792 Orders.CreateNewPattern(Highest+X);
793 end;
794
795 procedure TfrmTracker.MenuItem18Click(Sender: TObject);
796 begin
797 OrderEditStringGrid.InsertRowWithValues(
798 OrderEditStringGrid.Row,
799 ['', '0', '0', '0', '0']
800 );
801 end;
802
803 procedure TfrmTracker.MenuItem19Click(Sender: TObject);
804 begin
805 OrderEditStringGrid.DeleteRow(OrderEditStringGrid.Row);
806 end;
807
773 procedure TfrmTracker.MenuItem5Click(Sender: TObject); 808 procedure TfrmTracker.MenuItem5Click(Sender: TObject);
774 var 809 var
775 AboutForm: TfrmAboutHugeTracker; 810 AboutForm: TfrmAboutHugeTracker;
@@ -826,6 +861,12 @@ begin
826 ReloadPatterns; 861 ReloadPatterns;
827 end; 862 end;
828 863
864 procedure TfrmTracker.OrderEditStringGridKeyDown(Sender: TObject;
865 var Key: Word; Shift: TShiftState);
866 begin
867 if Key = VK_DELETE then OrderEditStringGrid.DeleteRow(OrderEditStringGrid.Row);
868 end;
869
829 procedure TfrmTracker.PanicToolButtonClick(Sender: TObject); 870 procedure TfrmTracker.PanicToolButtonClick(Sender: TObject);
830 begin 871 begin
831 // Silence CH1 872 // Silence CH1
Modifiedutils.pas +12−0
@@ -12,6 +12,7 @@ type
12 12
13 TOrderMapHelper = class helper for TOrderMap 13 TOrderMapHelper = class helper for TOrderMap
14 function GetOrCreateNew(Key: Integer): PPattern; 14 function GetOrCreateNew(Key: Integer): PPattern;
15 procedure CreateNewPattern(Key: Integer);
15 end; 16 end;
16 17
17 TRegisters = record 18 TRegisters = record
@@ -152,6 +153,17 @@ begin
152 end; 153 end;
153 end; 154 end;
154 155
156 procedure TOrderMapHelper.CreateNewPattern(Key: Integer);
157 var
158 NewPat: PPattern;
159 begin
160 if IndexOf(Key) <> -1 then Exit;
161
162 New(NewPat);
163 BlankPattern(NewPat);
164 Self.Add(Key, NewPat);
165 end;
166
155 function ConvertWaveform(Waveform: TWave): T4bitWave; 167 function ConvertWaveform(Waveform: TWave): T4bitWave;
156 var 168 var
157 I: Integer; 169 I: Integer;