Subversion Repositories spacemission

Compare Revisions

Regard whitespace Rev 71 → Rev 72

/LevMain.pas
55,6 → 55,7
AufUpdatesprfen1: TMenuItem;
N4: TMenuItem;
WasgibtesNeues1: TMenuItem;
Enemy8: TRadioButton;
procedure DXDrawFinalize(Sender: TObject);
procedure DXDrawInitialize(Sender: TObject);
procedure FormCreate(Sender: TObject);
169,8 → 170,12
if AEnemyType = etEnemyUFO then Image := MainForm.GetSpriteGraphic(smgEnemyDisk);
if AEnemyType = etEnemyUFO2 then Image := MainForm.GetSpriteGraphic(smgEnemyDisk2);
if AEnemyType = etEnemyBoss then Image := MainForm.GetSpriteGraphic(smgEnemyBoss);
if AEnemyType = etItemMedikit then Image := MainForm.GetSpriteGraphic(smgItemMedikit);
 
if AEnemyType = etEnemyMeteor then FLives := 0 else FLives := ALives;
if not EnemyTypeHasLives(AEnemyType) then
FLives := 0
else
FLives := ALives;
FEnemyType := AEnemyType;
Width := Image.Width;
Height := Image.Height;
558,7 → 563,8
procedure TMainForm.DXDrawMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
i, j, k, l, ex, ey: integer;
i: TEnemyType;
j, k, l, ex, ey: integer;
ok, breaked: boolean;
begin
ex := trunc(x/RasterW) * RasterW;
573,7 → 579,7
ok := false // boss already exists
else
begin
for i := 1 to NumEnemyTypes do
for i := Low(TEnemyType) to High(TEnemyType) do
begin
for j := 0 to MaxPossibleEnemyLives do
begin
593,7 → 599,7
end;
if not ok then break;
end;
if LevData.IndexOfEnemy(ex + (ScrollP * RasterW), ey, TEnemyType(i), j) <> -1 then
if LevData.IndexOfEnemy(ex + (ScrollP * RasterW), ey, i, j) <> -1 then
begin
ok := false;
break;
604,7 → 610,7
end;
if ok then
begin
if SelectedEnemyType <> etEnemyMeteor then
if EnemyTypeHasLives(SelectedEnemyType) then
LevData.AddEnemy(ex + (ScrollP * RasterW), ey, SelectedEnemyType, LivesEdit.Value)
else
LevData.AddEnemy(ex + (ScrollP * RasterW), ey, SelectedEnemyType, 0);
616,19 → 622,19
{ Löschen }
else if Button = mbRight then
begin
for i := 1 to NumEnemyTypes do
for i := Low(TEnemyType) to High(TEnemyType) do
begin
for j := 0 to MaxPossibleEnemyLives do
begin
if boss and (TEnemyType(i) = etEnemyBoss) then
if boss and (i = etEnemyBoss) then
begin
for k := 0 to 3 do
begin
for l := 0 to 1 do
begin
if LevData.IndexOfEnemy(ex + ((ScrollP - k) * RasterW), ey - (RasterH * l), TEnemyType(i), j) <> -1 then
if LevData.IndexOfEnemy(ex + ((ScrollP - k) * RasterW), ey - (RasterH * l), i, j) <> -1 then
begin
LevData.DeleteEnemy(ex + ((ScrollP - k) * RasterW), ey - (RasterH * l), TEnemyType(i), j);
LevData.DeleteEnemy(ex + ((ScrollP - k) * RasterW), ey - (RasterH * l), i, j);
Boss := false;
dec(NumEnemys);
breaked := true;
638,10 → 644,10
if breaked then break;
end;
end;
if LevData.IndexOfEnemy(ex + (ScrollP * RasterW), ey, TEnemyType(i), j) <> -1 then
if LevData.IndexOfEnemy(ex + (ScrollP * RasterW), ey, i, j) <> -1 then
begin
LevData.DeleteEnemy(ex + (ScrollP * RasterW), ey, TEnemyType(i), j);
if TEnemyType(i) = etEnemyBoss then Boss := false;
LevData.DeleteEnemy(ex + (ScrollP * RasterW), ey, i, j);
if i = etEnemyBoss then Boss := false;
dec(NumEnemys);
breaked := true;
break;
660,8 → 666,8
begin
et := SelectedEnemyType;
Image1.Left := -(87 * (Ord(et) - 1)) + 1;
LivesEdit.Enabled := et <> etEnemyMeteor;
LivesLabel.Enabled := et <> etEnemyMeteor;
LivesEdit.Enabled := EnemyTypeHasLives(et);
LivesLabel.Enabled := EnemyTypeHasLives(et);
end;
 
procedure TMainForm.EnemyCreateSprite(x, y: integer; AEnemyType: TEnemyType; ALives: integer);
741,7 → 747,8
status_lives = 'Leben: ';
status_nolives = 'Einheit hat keine Lebensangabe';
var
ex, ey, i, j, k, l: integer;
i: TEnemyType;
ex, ey, j, k, l: integer;
lifes: integer;
enemyType: TEnemyType;
enemyName: string;
757,17 → 764,17
lifes := -1;
enemyType := etUnknown;
breaked := false;
for i := 1 to NumEnemyTypes do
for i := Low(TEnemyType) to High(TEnemyType) do
begin
for j := 0 to MaxPossibleEnemyLives do
begin
if boss and (TEnemyType(i) = etEnemyBoss) then
if boss and (i = etEnemyBoss) then
begin
for k := 0 to 3 do
begin
for l := 0 to 1 do
begin
if LevData.IndexOfEnemy(ex + ((ScrollP - k) * RasterW), ey - (RasterH * l), TEnemyType(i), j) <> -1 then
if LevData.IndexOfEnemy(ex + ((ScrollP - k) * RasterW), ey - (RasterH * l), i, j) <> -1 then
begin
lifes := j;
breaked := true;
777,10 → 784,10
if breaked then break;
end;
end;
if (breaked = false) and (LevData.IndexOfEnemy(ex + (ScrollP * RasterW), ey, TEnemyType(i), j) <> -1) then
if (breaked = false) and (LevData.IndexOfEnemy(ex + (ScrollP * RasterW), ey, i, j) <> -1) then
begin
lifes := j;
enemyType := TEnemyType(i);
enemyType := i;
breaked := true;
break;
end;
796,6 → 803,7
else if Ord(enemyType) = 5 then enemyName := Enemy5.Caption
else if Ord(enemyType) = 6 then enemyName := Enemy6.Caption
else if Ord(enemyType) = 7 then enemyName := Enemy7.Caption
else if Ord(enemyType) = 8 then enemyName := Enemy8.Caption
else enemyName := '???';
if lifes > 0 then
StatusBar.SimpleText := ' ' + enemyName + ' - ' + status_lives + inttostr(lifes)
833,6 → 841,7
else if Enemy5.Checked then result := etEnemyUFO
else if Enemy6.Checked then result := etEnemyUFO2
else if Enemy7.Checked then result := etEnemyBoss
else if Enemy8.Checked then result := etItemMedikit
else result := etUnknown;
end;