Subversion Repositories spacemission

Rev

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

Rev 14 Rev 15
Line 248... Line 248...
248
  result := temp;
248
  result := temp;
249
end;
249
end;
250
 
250
 
251
procedure TSpeicherungForm.SpeichernBtnClick(Sender: TObject);
251
procedure TSpeicherungForm.SpeichernBtnClick(Sender: TObject);
252
var
252
var
253
  SavGame: textfile;
253
  LevelData: TLevelData;
254
  i, j: integer;
254
  i, j: integer;
255
  puffer: string;
255
  puffer: string;
256
begin
256
begin
257
  if mainform.Enemys.count = 0 then
257
  if mainform.Enemys.count = 0 then
258
  begin
258
  begin
Line 280... Line 280...
280
  if LevelListBox.items.IndexOf('Level ' + inttostr(SpinEdit.Position)) > -1 then
280
  if LevelListBox.items.IndexOf('Level ' + inttostr(SpinEdit.Position)) > -1 then
281
  begin
281
  begin
282
    if MessageDlg('Level ist bereits vorhanden. Ersetzen?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then
282
    if MessageDlg('Level ist bereits vorhanden. Ersetzen?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then
283
      exit;
283
      exit;
284
  end;
284
  end;
285
  // Öffnen oder erstellen
-
 
286
  AssignFile(SavGame, FDirectory+'Levels\Level '+inttostr(SpinEdit.Position)+'.lev');
-
 
287
  Rewrite(SavGame);
-
 
-
 
285
 
288
  // Sortierung
286
  // Sortierung (wichtig)
289
  for j := 0 to mainform.enemys.Count - 2 do
287
  for j := 0 to mainform.enemys.Count - 2 do
290
  begin
288
  begin
291
    for i := 0 to mainform.enemys.Count - 2 do
289
    for i := 0 to mainform.enemys.Count - 2 do
292
    begin
290
    begin
293
      if strtoint(filter(1, mainform.enemys.Strings[i])) > strtoint(filter(1, mainform.enemys.Strings[i + 1])) then
291
      if strtoint(filter(1, mainform.enemys.Strings[i])) > strtoint(filter(1, mainform.enemys.Strings[i + 1])) then
Line 296... Line 294...
296
        mainform.enemys.Strings[i] := mainform.enemys.Strings[i + 1];
294
        mainform.enemys.Strings[i] := mainform.enemys.Strings[i + 1];
297
        mainform.enemys.Strings[i + 1] := puffer;
295
        mainform.enemys.Strings[i + 1] := puffer;
298
      end;
296
      end;
299
    end;
297
    end;
300
  end;
298
  end;
-
 
299
 
301
  // Speichern
300
  // Speichern
302
  WriteLN(SavGame, '; SpaceMission ' + FCompVersion);
301
  LevelData := TLevelData.Create;
-
 
302
  try
303
  WriteLN(SavGame, '; LEV-File');
303
    LevelData.LevelEditorLength := MainForm.ScrollBar.Max;
304
  WriteLN(SavGame, inttostr(MainForm.ScrollBar.Max)); // --> Länge der Karte
304
    SetLength(LevelData.EnemyAdventTable, mainform.enemys.count);
305
  for i := 0 to mainform.enemys.count-1 do
305
    for i := 0 to mainform.enemys.count-1 do
306
  begin
306
    begin
307
    WriteLN(SavGame, filter(3, mainform.enemys.Strings[i]));
307
      LevelData.EnemyAdventTable[i].enemyType := TEnemyType(StrToInt(filter(3, mainform.enemys.Strings[i])));
308
    WriteLN(SavGame, filter(1, mainform.enemys.Strings[i]));
308
      LevelData.EnemyAdventTable[i].x := StrToInt(filter(1, mainform.enemys.Strings[i]));
309
    WriteLN(SavGame, filter(2, mainform.enemys.Strings[i]));
309
      LevelData.EnemyAdventTable[i].y := StrToInt(filter(2, mainform.enemys.Strings[i]));
310
    WriteLN(SavGame, filter(4, mainform.enemys.Strings[i]));
310
      LevelData.EnemyAdventTable[i].lifes := StrToInt(filter(4, mainform.enemys.Strings[i]));
311
  end;
311
    end;
-
 
312
    LevelData.Save(FDirectory+'Levels\Level '+inttostr(SpinEdit.Position)+'.lev');
312
  // Schließen
313
  finally
313
  CloseFile(SavGame);
314
    FreeAndNil(LevelData);
-
 
315
  end;
-
 
316
 
314
  // Nacharbeiten
317
  // Nacharbeiten
315
  MainForm.LevChanged := false;
318
  MainForm.LevChanged := false;
316
  MainForm.AnzeigeAct;
319
  MainForm.AnzeigeAct;
317
  SearchLevels;
320
  SearchLevels;
318
end;
321
end;
Line 424... Line 427...
424
end;
427
end;
425
 
428
 
426
procedure TSpeicherungForm.SpinEditEdtKeyPress(Sender: TObject;
429
procedure TSpeicherungForm.SpinEditEdtKeyPress(Sender: TObject;
427
  var Key: Char);
430
  var Key: Char);
428
begin
431
begin
-
 
432
  {$IFDEF UNICODE}
-
 
433
  if not CharInSet(Key, [#13, #08, '0'..'9']) then
-
 
434
  {$ELSE}
429
  if not (Key in [#13, #08, '0'..'9']) then
435
  if not (Key in [#13, #08, '0'..'9']) then
-
 
436
  {$ENDIF}
430
    Key := #0;
437
    Key := #0;
431
end;
438
end;
432
 
439
 
433
procedure TSpeicherungForm.SpinEditEdtChange(Sender: TObject);
440
procedure TSpeicherungForm.SpinEditEdtChange(Sender: TObject);
434
begin
441
begin