Subversion Repositories spacemission

Rev

Rev 56 | Rev 66 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 56 Rev 61
Line 56... Line 56...
56
 
56
 
57
{$R *.DFM}
57
{$R *.DFM}
58
 
58
 
59
resourcestring
59
resourcestring
60
  SLevelListBox = 'Level %d';
60
  SLevelListBox = 'Level %d';
-
 
61
  SSelbsterstellt = 'Selbsterstellt';
61
 
62
 
62
procedure TSpeicherungForm.SearchLevels;
63
procedure TSpeicherungForm.SearchLevels;
63
var
64
var
64
  i: integer;
65
  i: integer;
65
  fil: string;
66
  fil: TLevelFile;
66
begin
67
begin
67
  // TODO: slow
-
 
68
  //SpinEdit.Value := 1;
68
  //SpinEdit.Value := 1;
69
  LevelListBox.items.clear;
69
  LevelListBox.items.clear;
70
  li1a.visible := false;
70
  li1a.visible := false;
71
  li2a.visible := false;
71
  li2a.visible := false;
72
  li3a.visible := false;
72
  li3a.visible := false;
Line 79... Line 79...
79
  LadenBtn.enabled := false;
79
  LadenBtn.enabled := false;
80
  LoeschenBtn.enabled := false;
80
  LoeschenBtn.enabled := false;
81
  for i := 1 to MaxPossibleLevels do
81
  for i := 1 to MaxPossibleLevels do
82
  begin
82
  begin
83
    fil := GetLevelFileName(i, false);
83
    fil := GetLevelFileName(i, false);
-
 
84
    if fil.found then
-
 
85
    begin
-
 
86
      if fil.isUser then
-
 
87
        LevelListBox.items.Add(Format(SLevelListBox, [i])+' ('+SSelbsterstellt+')')
-
 
88
      else
84
    if fileexists(fil) then LevelListBox.items.Add(Format(SLevelListBox, [i]));
89
        LevelListBox.items.Add(Format(SLevelListBox, [i]));
-
 
90
    end;
85
  end;
91
  end;
86
end;
92
end;
87
 
93
 
88
procedure TSpeicherungForm.LoeschenBtnClick(Sender: TObject);
94
procedure TSpeicherungForm.LoeschenBtnClick(Sender: TObject);
89
var
95
var
90
  fil: string;
96
  fil: TLevelFile;
91
begin
97
begin
92
  if LevelListBox.ItemIndex = -1 then exit;
98
  if LevelListBox.ItemIndex = -1 then exit;
93
 
99
 
94
  if MessageDlg('Dieses Level wirklich löschen?', mtConfirmation, mbYesNoCancel, 0) = mrYes then
100
  if MessageDlg('Dieses Level wirklich löschen?', mtConfirmation, mbYesNoCancel, 0) = mrYes then
95
  begin
101
  begin
Line 103... Line 109...
103
    liu.visible := false;
109
    liu.visible := false;
104
    liw.visible := true;
110
    liw.visible := true;
105
    LadenBtn.enabled := false;
111
    LadenBtn.enabled := false;
106
    LoeschenBtn.enabled := false;
112
    LoeschenBtn.enabled := false;
107
    fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false);
113
    fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false);
108
    if not fileexists(fil) then raise Exception.Create('Leveldatei nicht gefunden');
114
    if not fil.found then raise Exception.Create('Leveldatei nicht gefunden');
109
    deletefile(fil);
115
    deletefile(fil.fileLocation);
110
    SearchLevels;
116
    SearchLevels;
111
  end;
117
  end;
112
end;
118
end;
113
 
119
 
114
procedure TSpeicherungForm.LadenBtnClick(Sender: TObject);
120
procedure TSpeicherungForm.LadenBtnClick(Sender: TObject);
115
var
121
var
116
  fil: string;
122
  fil: TLevelFile;
117
begin
123
begin
118
  if LevelListBox.ItemIndex = -1 then exit;
124
  if LevelListBox.ItemIndex = -1 then exit;
119
 
125
 
120
  if MainForm.LevChanged and (MainForm.LevData.CountEnemies>0) then
126
  if MainForm.LevChanged and (MainForm.LevData.CountEnemies>0) then
121
  begin
127
  begin
Line 127... Line 133...
127
    exit;}
133
    exit;}
128
 
134
 
129
  MainForm.DestroyLevel;
135
  MainForm.DestroyLevel;
130
  MainForm.LevData.RasterErzwingen := true;
136
  MainForm.LevData.RasterErzwingen := true;
131
  fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false);
137
  fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false);
132
  if not fileexists(fil) then raise Exception.Create('Leveldatei nicht gefunden');
138
  if not fil.found then raise Exception.Create('Leveldatei nicht gefunden');
133
  MainForm.LevData.LoadFromFile(fil);
139
  MainForm.LevData.LoadFromFile(fil.fileLocation);
134
  MainForm.RefreshFromLevData;
140
  MainForm.RefreshFromLevData;
135
  MainForm.LevChanged := false;
141
  MainForm.LevChanged := false;
136
  MainForm.AnzeigeAct;
142
  MainForm.AnzeigeAct;
137
  close;
143
  close;
138
end;
144
end;
Line 168... Line 174...
168
      exit;
174
      exit;
169
  end;
175
  end;
170
 
176
 
171
  // Speichern
177
  // Speichern
172
  MainForm.LevData.LevelEditorLength := MainForm.ScrollBar.Max;
178
  MainForm.LevData.LevelEditorLength := MainForm.ScrollBar.Max;
173
  MainForm.LevData.SaveToFile(GetLevelFileName(LevelNumber.Value,true));
179
  MainForm.LevData.SaveToFile(GetLevelFileName(LevelNumber.Value,true).fileLocation);
174
 
180
 
175
  // Nacharbeiten
181
  // Nacharbeiten
176
  MainForm.LevChanged := false;
182
  MainForm.LevChanged := false;
177
  MainForm.AnzeigeAct;
183
  MainForm.AnzeigeAct;
178
  SearchLevels;
184
  SearchLevels;
Line 182... Line 188...
182
var
188
var
183
  LevelData: TLevelData;
189
  LevelData: TLevelData;
184
  boss: boolean;
190
  boss: boolean;
185
  i: Integer;
191
  i: Integer;
186
  anzahlEinheiten: integer;
192
  anzahlEinheiten: integer;
187
  fil: string;
193
  fil: TLevelFile;
188
begin
194
begin
189
  li1a.visible := false;
195
  li1a.visible := false;
190
  li2a.visible := false;
196
  li2a.visible := false;
191
  li3a.visible := false;
197
  li3a.visible := false;
192
  li1b.visible := false;
198
  li1b.visible := false;
Line 208... Line 214...
208
  try
214
  try
209
    try
215
    try
210
      LevelData.RasterErzwingen := true;
216
      LevelData.RasterErzwingen := true;
211
 
217
 
212
      fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false);
218
      fil := GetLevelFileName(GetListBoxSelectedLevelNumber,false);
213
      if not fileexists(fil) then raise Exception.Create('Leveldatei nicht gefunden');
219
      if not fil.found then raise Exception.Create('Leveldatei nicht gefunden');
214
      LevelData.LoadFromFile(fil);
220
      LevelData.LoadFromFile(fil.fileLocation);
215
 
221
 
216
      boss := false;
222
      boss := false;
217
      anzahlEinheiten := Length(LevelData.EnemyAdventTable);
223
      anzahlEinheiten := Length(LevelData.EnemyAdventTable);
218
      for i := 0 to anzahlEinheiten - 1 do
224
      for i := 0 to anzahlEinheiten - 1 do
219
      begin
225
      begin
Line 265... Line 271...
265
begin
271
begin
266
  result := -1;
272
  result := -1;
267
  if LevelListBox.itemindex = -1 then exit;
273
  if LevelListBox.itemindex = -1 then exit;
268
  for i := 1 to MaxPossibleLevels do
274
  for i := 1 to MaxPossibleLevels do
269
  begin
275
  begin
270
    if LevelListBox.Items.strings[LevelListBox.itemindex] = Format(SLevelListBox, [i]) then
276
    if (LevelListBox.Items.strings[LevelListBox.itemindex] = Format(SLevelListBox, [i])) or
-
 
277
       (LevelListBox.Items.strings[LevelListBox.itemindex] = Format(SLevelListBox, [i])+' ('+SSelbstErstellt+')') then
271
    begin
278
    begin
272
      result := i;
279
      result := i;
273
      exit;
280
      exit;
274
    end;
281
    end;
275
  end;
282
  end;