@@ -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, LCLType; |
12 |
ECProgressBar, HugeDatatypes, LCLType, Codegen; |
| 13 |
|
13 |
|
| 14 |
type |
14 |
type |
| 15 |
{ TfrmTracker } |
15 |
{ TfrmTracker } |
@@ -71,6 +71,7 @@ type |
| 71 |
ToolButton4: TToolButton; |
71 |
ToolButton4: TToolButton; |
| 72 |
ToolButton5: TToolButton; |
72 |
ToolButton5: TToolButton; |
| 73 |
ToolButton6: TToolButton; |
73 |
ToolButton6: TToolButton; |
|
|
74 |
ToolButton7: TToolButton; |
| 74 |
ToolButton8: TToolButton; |
75 |
ToolButton8: TToolButton; |
| 75 |
WaveEditNumberSpinner: TSpinEdit; |
76 |
WaveEditNumberSpinner: TSpinEdit; |
| 76 |
WaveEditGroupBox: TGroupBox; |
77 |
WaveEditGroupBox: TGroupBox; |
@@ -195,6 +196,7 @@ type |
| 195 |
procedure PanicToolButtonClick(Sender: TObject); |
196 |
procedure PanicToolButtonClick(Sender: TObject); |
| 196 |
procedure PasteActionExecute(Sender: TObject); |
197 |
procedure PasteActionExecute(Sender: TObject); |
| 197 |
procedure TicksPerRowSpinEditChange(Sender: TObject); |
198 |
procedure TicksPerRowSpinEditChange(Sender: TObject); |
|
|
199 |
procedure ToolButton5Click(Sender: TObject); |
| 198 |
procedure WaveEditNumberSpinnerChange(Sender: TObject); |
200 |
procedure WaveEditNumberSpinnerChange(Sender: TObject); |
| 199 |
procedure WaveEditPaintBoxMouseDown(Sender: TObject; Button: TMouseButton; |
201 |
procedure WaveEditPaintBoxMouseDown(Sender: TObject; Button: TMouseButton; |
| 200 |
Shift: TShiftState; X, Y: Integer); |
202 |
Shift: TShiftState; X, Y: Integer); |
@@ -269,7 +271,7 @@ end; |
| 269 |
|
271 |
|
| 270 |
procedure TfrmTracker.DrawWaveform(PB: TPaintBox; Wave: TWave); |
272 |
procedure TfrmTracker.DrawWaveform(PB: TPaintBox; Wave: TWave); |
| 271 |
var |
273 |
var |
| 272 |
Interval, HInterval: Integer; |
274 |
Interval{, HInterval}: Integer; |
| 273 |
I: Integer; |
275 |
I: Integer; |
| 274 |
W, H : Integer; |
276 |
W, H : Integer; |
| 275 |
begin |
277 |
begin |
@@ -277,7 +279,7 @@ begin |
| 277 |
H := PB.Height; |
279 |
H := PB.Height; |
| 278 |
|
280 |
|
| 279 |
Interval := W div 32; |
281 |
Interval := W div 32; |
| 280 |
HInterval := H div $10; |
282 |
//HInterval := H div $10; |
| 281 |
With PB.Canvas do begin |
283 |
With PB.Canvas do begin |
| 282 |
Brush.Color := clBlack; |
284 |
Brush.Color := clBlack; |
| 283 |
Clear; |
285 |
Clear; |
@@ -693,8 +695,9 @@ var |
| 693 |
Section: TCollectionItem; |
695 |
Section: TCollectionItem; |
| 694 |
P: TPoint; |
696 |
P: TPoint; |
| 695 |
begin |
697 |
begin |
|
|
698 |
// Hack |
|
|
699 |
|
| 696 |
if Button = mbRight then begin |
700 |
if Button = mbRight then begin |
| 697 |
// Hack |
|
|
| 698 |
P.X := X; |
701 |
P.X := X; |
| 699 |
P.Y := Y; |
702 |
P.Y := Y; |
| 700 |
|
703 |
|
@@ -804,10 +807,15 @@ var |
| 804 |
begin |
807 |
begin |
| 805 |
Highest := Patterns.MaxKey; |
808 |
Highest := Patterns.MaxKey; |
| 806 |
|
809 |
|
| 807 |
OrderEditStringGrid.InsertRowWithValues( |
810 |
with OrderEditStringGrid do |
| 808 |
OrderEditStringGrid.Row, |
811 |
InsertRowWithValues( |
| 809 |
['',IntToStr(Highest),IntToStr(Highest+1), IntToStr(Highest+2), IntToStr(Highest+3)] |
812 |
Row, |
| 810 |
); |
813 |
['', |
|
|
814 |
IntToStr(Highest), |
|
|
815 |
IntToStr(Highest+1), |
|
|
816 |
IntToStr(Highest+2), |
|
|
817 |
IntToStr(Highest+3)] |
|
|
818 |
); |
| 811 |
|
819 |
|
| 812 |
for X := 0 to 3 do |
820 |
for X := 0 to 3 do |
| 813 |
Patterns.CreateNewPattern(Highest+X); |
821 |
Patterns.CreateNewPattern(Highest+X); |
@@ -815,10 +823,8 @@ end; |
| 815 |
|
823 |
|
| 816 |
procedure TfrmTracker.MenuItem18Click(Sender: TObject); |
824 |
procedure TfrmTracker.MenuItem18Click(Sender: TObject); |
| 817 |
begin |
825 |
begin |
| 818 |
OrderEditStringGrid.InsertRowWithValues( |
826 |
with OrderEditStringGrid do |
| 819 |
OrderEditStringGrid.Row, |
827 |
InsertRowWithValues(Row, ['', '0', '0', '0', '0']); |
| 820 |
['', '0', '0', '0', '0'] |
|
|
| 821 |
); |
|
|
| 822 |
end; |
828 |
end; |
| 823 |
|
829 |
|
| 824 |
procedure TfrmTracker.MenuItem19Click(Sender: TObject); |
830 |
procedure TfrmTracker.MenuItem19Click(Sender: TObject); |
@@ -872,7 +878,7 @@ end; |
| 872 |
|
878 |
|
| 873 |
procedure TfrmTracker.OrderEditStringGridDblClick(Sender: TObject); |
879 |
procedure TfrmTracker.OrderEditStringGridDblClick(Sender: TObject); |
| 874 |
var |
880 |
var |
| 875 |
X, Highest: Integer; |
881 |
Highest: Integer; |
| 876 |
begin |
882 |
begin |
| 877 |
Highest := Patterns.MaxKey; |
883 |
Highest := Patterns.MaxKey; |
| 878 |
|
884 |
|
@@ -886,7 +892,8 @@ procedure TfrmTracker.OrderEditStringGridEditingDone(Sender: TObject); |
| 886 |
var |
892 |
var |
| 887 |
Temp: Integer; |
893 |
Temp: Integer; |
| 888 |
begin |
894 |
begin |
| 889 |
// TODO: Fix this hack! For some reason OnValidateEntry is giving bad pointers |
895 |
// TODO: Fix this hack! |
|
|
896 |
// For some reason OnValidateEntry is giving bad pointers |
| 890 |
// for its NewValue and OldValue params. This is the workaround for now. |
897 |
// for its NewValue and OldValue params. This is the workaround for now. |
| 891 |
with OrderEditStringGrid do |
898 |
with OrderEditStringGrid do |
| 892 |
if not TryStrToInt(Cells[Col, Row], Temp) then Cells[Col, Row] := ''; |
899 |
if not TryStrToInt(Cells[Col, Row], Temp) then Cells[Col, Row] := ''; |
@@ -897,7 +904,10 @@ end; |
| 897 |
procedure TfrmTracker.OrderEditStringGridKeyDown(Sender: TObject; |
904 |
procedure TfrmTracker.OrderEditStringGridKeyDown(Sender: TObject; |
| 898 |
var Key: Word; Shift: TShiftState); |
905 |
var Key: Word; Shift: TShiftState); |
| 899 |
begin |
906 |
begin |
| 900 |
if Key = VK_DELETE then OrderEditStringGrid.DeleteRow(OrderEditStringGrid.Row); |
907 |
if Key = VK_DELETE then begin |
|
|
908 |
// TODO: Make this stop the editor from showing |
|
|
909 |
OrderEditStringGrid.DeleteRow(OrderEditStringGrid.Row); |
|
|
910 |
end; |
| 901 |
end; |
911 |
end; |
| 902 |
|
912 |
|
| 903 |
procedure TfrmTracker.PanicToolButtonClick(Sender: TObject); |
913 |
procedure TfrmTracker.PanicToolButtonClick(Sender: TObject); |
@@ -923,6 +933,13 @@ begin |
| 923 |
Song.TicksPerRow := TicksPerRowSpinEdit.Value; |
933 |
Song.TicksPerRow := TicksPerRowSpinEdit.Value; |
| 924 |
end; |
934 |
end; |
| 925 |
|
935 |
|
|
|
936 |
procedure TfrmTracker.ToolButton5Click(Sender: TObject); |
|
|
937 |
begin |
|
|
938 |
if SaveDialog1.Execute then begin |
|
|
939 |
RenderSongToFile(Song, SaveDialog1.FileName); |
|
|
940 |
end; |
|
|
941 |
end; |
|
|
942 |
|
| 926 |
procedure TfrmTracker.WaveEditNumberSpinnerChange(Sender: TObject); |
943 |
procedure TfrmTracker.WaveEditNumberSpinnerChange(Sender: TObject); |
| 927 |
begin |
944 |
begin |
| 928 |
LoadWave(WaveEditNumberSpinner.Value); |
945 |
LoadWave(WaveEditNumberSpinner.Value); |