Subversion Repositories spacemission

Rev

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

Rev 31 Rev 40
Line 220... Line 220...
220
  imagelist := tdximagelist.create(self);
220
  imagelist := tdximagelist.create(self);
221
  imagelist.DXDraw := dxdraw;
221
  imagelist.DXDraw := dxdraw;
222
 
222
 
223
  { VCL-Ersatz ende }
223
  { VCL-Ersatz ende }
224
 
224
 
-
 
225
  LivesEdit.MinValue := 1;
-
 
226
  LivesEdit.MaxValue := MaxPossibleEnemyLives;
-
 
227
  LivesEdit.Value := 1;
-
 
228
 
225
  Enemy1.Checked := true;
229
  Enemy1.Checked := true;
226
  EnemyClick(Enemy1);
230
  EnemyClick(Enemy1);
227
  // Leeres Level am Anfang braucht keine Beenden-Bestätigung.
231
  // Leeres Level am Anfang braucht keine Beenden-Bestätigung.
228
  // LevChanged := true;
232
  // LevChanged := true;
229
 
233
 
Line 231... Line 235...
231
  Caption := 'SpaceMission '+ProgramVersion+' - Leveleditor';
235
  Caption := 'SpaceMission '+ProgramVersion+' - Leveleditor';
232
  DXInit;
236
  DXInit;
233
  LevData := TLevelData.create;
237
  LevData := TLevelData.create;
234
  ProgramInit;
238
  ProgramInit;
235
  DestroyLevel;
239
  DestroyLevel;
236
  if (paramcount > 0) and (fileexists(paramstr(1))) then
240
  if (paramcount > 0) and (fileexists(paramstr(1))) and (ExtractFileExt(paramstr(1)).ToLower = '.lev') then
237
  begin
241
  begin
238
    try
242
    try
239
      LevData.Load(paramstr(1));
243
      LevData.LoadFromFile(paramstr(1));
240
    except
244
    except
241
      on E: Exception do
245
      on E: Exception do
242
      begin
246
      begin
243
        showmessage(SFileError + ' ' +E.Message);
247
        showmessage(SFileError + ' ' +E.Message);
244
        DestroyLevel;
248
        DestroyLevel;
Line 250... Line 254...
250
  end;
254
  end;
251
end;
255
end;
252
 
256
 
253
procedure TMainForm.FormDestroy(Sender: TObject);
257
procedure TMainForm.FormDestroy(Sender: TObject);
254
begin
258
begin
255
  LevData.Free;
259
  FreeAndNil(LevData);
256
  //spriteengine.Free;
260
  //FreeAndNil(spriteengine);
257
  dxtimer.Free;
261
  FreeAndNil(dxtimer);
258
  imagelist.Free;
262
  FreeAndNil(imagelist);
259
  dxdraw.free;
263
  FreeAndNil(dxdraw);
260
end;
264
end;
261
 
265
 
262
procedure TMainForm.BeendenClick(Sender: TObject);
266
procedure TMainForm.BeendenClick(Sender: TObject);
263
begin
267
begin
264
  close;
268
  close;
Line 448... Line 452...
448
  speicherungform.showmodal;
452
  speicherungform.showmodal;
449
end;
453
end;
450
 
454
 
451
procedure TMainForm.FormShow(Sender: TObject);
455
procedure TMainForm.FormShow(Sender: TObject);
452
begin
456
begin
-
 
457
  if Assigned(SplashForm) then
-
 
458
  begin
453
  SplashForm.Hide;
459
    SplashForm.Hide;
454
  SplashForm.Free;
460
    FreeAndNil(SplashForm);
-
 
461
  end;
455
 
462
 
456
  dxtimer.Enabled := true;
463
  dxtimer.Enabled := true;
457
  dxtimer.ActiveOnly := true;
464
  dxtimer.ActiveOnly := true;
458
end;
465
end;
459
 
466
 
Line 497... Line 504...
497
      ok := false // boss already exists
504
      ok := false // boss already exists
498
    else
505
    else
499
    begin
506
    begin
500
      for i := 1 to NumEnemyTypes do
507
      for i := 1 to NumEnemyTypes do
501
      begin
508
      begin
502
        for j := 0 to 999 do
509
        for j := 0 to MaxPossibleEnemyLives do
503
        begin
510
        begin
504
          if boss then
511
          if boss then
505
          begin
512
          begin
506
            for k := 0 to 3 do
513
            for k := 0 to 3 do
507
            begin
514
            begin
Line 540... Line 547...
540
  { Löschen }
547
  { Löschen }
541
  else if Button = mbRight then
548
  else if Button = mbRight then
542
  begin
549
  begin
543
    for i := 1 to NumEnemyTypes do
550
    for i := 1 to NumEnemyTypes do
544
    begin
551
    begin
545
      for j := 0 to 999 do
552
      for j := 0 to MaxPossibleEnemyLives do
546
      begin
553
      begin
547
        if boss and (TEnemyType(i) = etEnemyBoss) then
554
        if boss and (TEnemyType(i) = etEnemyBoss) then
548
        begin
555
        begin
549
          for k := 0 to 3 do
556
          for k := 0 to 3 do
550
          begin
557
          begin
Line 615... Line 622...
615
procedure TMainForm.AlleLeveldateienaktualisieren1Click(Sender: TObject);
622
procedure TMainForm.AlleLeveldateienaktualisieren1Click(Sender: TObject);
616
var
623
var
617
  i: integer;
624
  i: integer;
618
begin
625
begin
619
  // Just for internal/development purposes
626
  // Just for internal/development purposes
620
  for i := 1 to 9999 do
627
  for i := 1 to MaxPossibleLevels do
621
  begin
628
  begin
622
    if FileExists('Levels\Level '+IntToStr(i)+'.lev') then
629
    if FileExists('Levels\Level '+IntToStr(i)+'.lev') then
623
    begin
630
    begin
624
      LevData.Load('Levels\Level '+IntToStr(i)+'.lev');
631
      LevData.LoadFromFile('Levels\Level '+IntToStr(i)+'.lev');
625
      LevData.Save('Levels\Level '+IntToStr(i)+'.lev');
632
      LevData.SaveToFile('Levels\Level '+IntToStr(i)+'.lev');
626
    end;
633
    end;
627
  end;
634
  end;
628
end;
635
end;
629
 
636
 
630
procedure TMainForm.AnzeigeAct;
637
procedure TMainForm.AnzeigeAct;
Line 675... Line 682...
675
  lifes := -1;
682
  lifes := -1;
676
  enemyType := etUnknown;
683
  enemyType := etUnknown;
677
  breaked := false;
684
  breaked := false;
678
  for i := 1 to NumEnemyTypes do
685
  for i := 1 to NumEnemyTypes do
679
  begin
686
  begin
680
    for j := 0 to 999 do
687
    for j := 0 to MaxPossibleEnemyLives do
681
    begin
688
    begin
682
      if boss and (TEnemyType(i) = etEnemyBoss) then
689
      if boss and (TEnemyType(i) = etEnemyBoss) then
683
      begin
690
      begin
684
        for k := 0 to 3 do
691
        for k := 0 to 3 do
685
        begin
692
        begin