Subversion Repositories spacemission

Rev

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

Rev 17 Rev 24
Line 25... Line 25...
25
    li2b: TLabel;
25
    li2b: TLabel;
26
    li2a: TLabel;
26
    li2a: TLabel;
27
    li3b: TLabel;
27
    li3b: TLabel;
28
    liu: TLabel;
28
    liu: TLabel;
29
    liw: TLabel;
29
    liw: TLabel;
30
    SpinEditEdt: TEdit;
30
    LevelNumber: TSpinEdit;
31
    SpinEdit: TUpDown;
-
 
32
    procedure LoeschenBtnClick(Sender: TObject);
31
    procedure LoeschenBtnClick(Sender: TObject);
33
    procedure LadenBtnClick(Sender: TObject);
32
    procedure LadenBtnClick(Sender: TObject);
34
    procedure SpeichernBtnClick(Sender: TObject);
33
    procedure SpeichernBtnClick(Sender: TObject);
35
    procedure LevelListBoxClick(Sender: TObject);
34
    procedure LevelListBoxClick(Sender: TObject);
36
    procedure Button4Click(Sender: TObject);
35
    procedure Button4Click(Sender: TObject);
Line 38... Line 37...
38
    procedure DsFancyButton2Click(Sender: TObject);
37
    procedure DsFancyButton2Click(Sender: TObject);
39
    procedure AbbrechenBtnClick(Sender: TObject);
38
    procedure AbbrechenBtnClick(Sender: TObject);
40
    procedure LevelNameChange(Sender: TObject);
39
    procedure LevelNameChange(Sender: TObject);
41
    procedure LevelListBoxDblClick(Sender: TObject);
40
    procedure LevelListBoxDblClick(Sender: TObject);
42
    procedure FormHide(Sender: TObject);
41
    procedure FormHide(Sender: TObject);
43
    procedure SpinEditClick(Sender: TObject; Button: TUDBtnType);
-
 
44
    procedure SpinEditEdtKeyPress(Sender: TObject; var Key: Char);
-
 
45
    procedure SpinEditEdtChange(Sender: TObject);
-
 
46
  public
42
  public
47
    procedure SearchLevels;
43
    procedure SearchLevels;
48
    function RightStr(str: string; count: integer): string;
44
    function RightStr(str: string; count: integer): string;
49
    function Filter(n: integer; s: string): string;
45
    function Filter(n: integer; s: string): string;
50
  end;
46
  end;
Line 75... Line 71...
75
  LadenBtn.enabled := false;
71
  LadenBtn.enabled := false;
76
  LoeschenBtn.enabled := false;
72
  LoeschenBtn.enabled := false;
77
  for i := 1 to 9999 do
73
  for i := 1 to 9999 do
78
  begin
74
  begin
79
    if fileexists(GetLevelFileName(i)) then
75
    if fileexists(GetLevelFileName(i)) then
80
      LevelListBox.items.Add(ExtractFileName(GetLevelFileName(i)));
76
      LevelListBox.items.Add(ChangeFileExt(ExtractFileName(GetLevelFileName(i)),''));
81
  end;
77
  end;
82
end;
78
end;
83
 
79
 
84
procedure TSpeicherungForm.LoeschenBtnClick(Sender: TObject);
80
procedure TSpeicherungForm.LoeschenBtnClick(Sender: TObject);
85
var
81
var
Line 111... Line 107...
111
end;
107
end;
112
 
108
 
113
procedure TSpeicherungForm.LadenBtnClick(Sender: TObject);
109
procedure TSpeicherungForm.LadenBtnClick(Sender: TObject);
114
var
110
var
115
  Markiert: boolean;
111
  Markiert: boolean;
116
  i, TempArtMain, TempLiveMain: integer;
112
  i: integer;
117
  LevelData: TLevelData;
113
  LevelData: TLevelData;
118
begin
114
begin
119
  Markiert := false;
115
  Markiert := false;
120
  for i := 0 to LevelListBox.items.Count-1 do
116
  for i := 0 to LevelListBox.items.Count-1 do
121
  begin
117
  begin
Line 145... Line 141...
145
  try
141
  try
146
    LevelData.Load(IncludeTrailingPathDelimiter(ExtractFilePath(GetLevelFileName(1)))+
142
    LevelData.Load(IncludeTrailingPathDelimiter(ExtractFilePath(GetLevelFileName(1)))+
147
      LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev');
143
      LevelListBox.Items.strings[LevelListBox.itemindex]+'.lev');
148
    MainForm.ScrollBar.Max := LevelData.LevelEditorLength;
144
    MainForm.ScrollBar.Max := LevelData.LevelEditorLength;
149
    MainForm.Enemys.Clear;
145
    MainForm.Enemys.Clear;
150
    TempArtMain := MainForm.ArtChecked;
-
 
151
    TempLiveMain := MainForm.LiveEdit;
-
 
152
    MainForm.NumEnemys := Length(LevelData.EnemyAdventTable);
146
    MainForm.NumEnemys := Length(LevelData.EnemyAdventTable);
153
    for i := 0 to MainForm.NumEnemys-1 do
147
    for i := 0 to MainForm.NumEnemys-1 do
154
    begin
148
    begin
155
      MainForm.EnemyAdd(
149
      MainForm.EnemyAdd(
156
        LevelData.EnemyAdventTable[i].x,
150
        LevelData.EnemyAdventTable[i].x,
157
        LevelData.EnemyAdventTable[i].y,
151
        LevelData.EnemyAdventTable[i].y,
158
        Ord(LevelData.EnemyAdventTable[i].enemyType),
152
        Ord(LevelData.EnemyAdventTable[i].enemyType),
159
        LevelData.EnemyAdventTable[i].lifes
153
        LevelData.EnemyAdventTable[i].lifes
160
      );
154
      );
161
      MainForm.ArtChecked := Ord(LevelData.EnemyAdventTable[i].enemyType);
-
 
162
      MainForm.LiveEdit := LevelData.EnemyAdventTable[i].lifes;
-
 
163
      MainForm.EnemyCreate(
155
      MainForm.EnemyCreate(
164
        LevelData.EnemyAdventTable[i].x,
156
        LevelData.EnemyAdventTable[i].x,
165
        LevelData.EnemyAdventTable[i].y
157
        LevelData.EnemyAdventTable[i].y,
-
 
158
        LevelData.EnemyAdventTable[i].enemyType,
-
 
159
        LevelData.EnemyAdventTable[i].lifes
166
      );
160
      );
167
      if LevelData.EnemyAdventTable[i].enemyType = etEnemyBoss then MainForm.Boss := true;
161
      if LevelData.EnemyAdventTable[i].enemyType = etEnemyBoss then MainForm.Boss := true;
168
    end;
162
    end;
169
  finally
163
  finally
170
    FreeAndNil(LevelData);
164
    FreeAndNil(LevelData);
171
  end;
165
  end;
172
  MainForm.LiveEdit := TempLiveMain;
-
 
173
  MainForm.ArtChecked := TempArtMain;
-
 
174
  // Nacharbeiten
166
  // Nacharbeiten
175
  MainForm.AnzeigeAct;
167
  MainForm.AnzeigeAct;
176
  close;
168
  close;
177
end;
169
end;
178
 
170
 
Line 243... Line 235...
243
  puffer: string;
235
  puffer: string;
244
begin
236
begin
245
  if mainform.Enemys.count = 0 then
237
  if mainform.Enemys.count = 0 then
246
  begin
238
  begin
247
    MessageDlg('Das Level ist leer!', mtError, [mbOK], 0);
239
    MessageDlg('Das Level ist leer!', mtError, [mbOK], 0);
248
    SpinEdit.SetFocus;
240
    LevelNumber.SetFocus;
249
    exit;
241
    exit;
250
  end;
242
  end;
251
  {for i := 0 to length(LevelName.text) do
243
  {for i := 0 to length(LevelName.text) do
252
  begin
244
  begin
253
    if (copy(LevelName.text, i, 1) = '\') or
245
    if (copy(LevelName.text, i, 1) = '\') or
Line 263... Line 255...
263
      MessageDlg('Dies ist kein gültiger Levelname!', mtError, [mbOK], 0);
255
      MessageDlg('Dies ist kein gültiger Levelname!', mtError, [mbOK], 0);
264
      LevelName.SetFocus;
256
      LevelName.SetFocus;
265
      exit;
257
      exit;
266
    end;
258
    end;
267
  end;}
259
  end;}
268
  if LevelListBox.items.IndexOf('Level ' + inttostr(SpinEdit.Position)) > -1 then
260
  if LevelListBox.items.IndexOf('Level ' + inttostr(LevelNumber.Value)) > -1 then
269
  begin
261
  begin
270
    if MessageDlg('Level ist bereits vorhanden. Ersetzen?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then
262
    if MessageDlg('Level ist bereits vorhanden. Ersetzen?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then
271
      exit;
263
      exit;
272
  end;
264
  end;
273
 
265
 
Line 295... Line 287...
295
      LevelData.EnemyAdventTable[i].enemyType := TEnemyType(StrToInt(filter(3, mainform.enemys.Strings[i])));
287
      LevelData.EnemyAdventTable[i].enemyType := TEnemyType(StrToInt(filter(3, mainform.enemys.Strings[i])));
296
      LevelData.EnemyAdventTable[i].x := StrToInt(filter(1, mainform.enemys.Strings[i]));
288
      LevelData.EnemyAdventTable[i].x := StrToInt(filter(1, mainform.enemys.Strings[i]));
297
      LevelData.EnemyAdventTable[i].y := StrToInt(filter(2, mainform.enemys.Strings[i]));
289
      LevelData.EnemyAdventTable[i].y := StrToInt(filter(2, mainform.enemys.Strings[i]));
298
      LevelData.EnemyAdventTable[i].lifes := StrToInt(filter(4, mainform.enemys.Strings[i]));
290
      LevelData.EnemyAdventTable[i].lifes := StrToInt(filter(4, mainform.enemys.Strings[i]));
299
    end;
291
    end;
300
    LevelData.Save(GetLevelFileName(SpinEdit.Position));
292
    LevelData.Save(GetLevelFileName(LevelNumber.Value));
301
  finally
293
  finally
302
    FreeAndNil(LevelData);
294
    FreeAndNil(LevelData);
303
  end;
295
  end;
304
 
296
 
305
  // Nacharbeiten
297
  // Nacharbeiten
Line 330... Line 322...
330
    loeschenbtn.enabled := false;
322
    loeschenbtn.enabled := false;
331
    liw.visible := true;
323
    liw.visible := true;
332
    exit;
324
    exit;
333
  end;
325
  end;
334
  temp := LevelListBox.Items.strings[LevelListBox.itemindex];
326
  temp := LevelListBox.Items.strings[LevelListBox.itemindex];
335
  SpinEdit.Position := strtoint(RightStr(temp, length(temp)-6));
327
  LevelNumber.Value := strtoint(RightStr(temp, length(temp)-Length('Level ')));
336
 
328
 
337
  LevelData := TLevelData.Create;
329
  LevelData := TLevelData.Create;
338
  try
330
  try
339
    try
331
    try
340
      LevelData.Load(IncludeTrailingPathDelimiter(ExtractFilePath(GetLevelFileName(1)))+
332
      LevelData.Load(IncludeTrailingPathDelimiter(ExtractFilePath(GetLevelFileName(1)))+
Line 407... Line 399...
407
procedure TSpeicherungForm.FormHide(Sender: TObject);
399
procedure TSpeicherungForm.FormHide(Sender: TObject);
408
begin
400
begin
409
  mainform.dxtimer.enabled := true;
401
  mainform.dxtimer.enabled := true;
410
end;
402
end;
411
 
403
 
412
procedure TSpeicherungForm.SpinEditClick(Sender: TObject;
-
 
413
  Button: TUDBtnType);
-
 
414
begin
-
 
415
  SpinEditEdt.Text := inttostr(SpinEdit.position);
-
 
416
end;
-
 
417
 
-
 
418
procedure TSpeicherungForm.SpinEditEdtKeyPress(Sender: TObject;
-
 
419
  var Key: Char);
-
 
420
begin
-
 
421
  {$IFDEF UNICODE}
-
 
422
  if not CharInSet(Key, [#13, #08, '0'..'9']) then
-
 
423
  {$ELSE}
-
 
424
  if not (Key in [#13, #08, '0'..'9']) then
-
 
425
  {$ENDIF}
-
 
426
    Key := #0;
-
 
427
end;
-
 
428
 
-
 
429
procedure TSpeicherungForm.SpinEditEdtChange(Sender: TObject);
-
 
430
begin
-
 
431
  SpinEdit.Position := strtoint(SpinEditEdt.text);
-
 
432
end;
-
 
433
 
-
 
434
end.
404
end.
435
 
405