Wodzu, with your solution lives runs to 643?

[pascal]procedure TFormGame.PlayingStateMachine;
var i,j : integer;
begin
case fPlayingState of
_psStarting : begin
for I:= DXSpriteEngine.Engine.AllCount-1 downto 0 do
begin
if (DXSpriteEngine.Engine.Items[i] <> nil) then
begin
DXSpriteEngine.Engine.Items[i].dead;
end;
end;
BackGroundCreate;
Player := TPlayer.create(dxspriteEngine.Engine,dximageList,P layerImageIndex);
Attacker := TAttacker.create(dxspriteEngine.Engine,dximageList ,AttackerImageIndex);
SpaceShipDown := TSpaceShipDown.create(dxspriteEngine.Engine,dximag eList,SpaceShipDownImageIndex);
GreenShip := TGreenShip.create(dxspriteEngine.Engine,dximageLis t,GreenShipImageIndex);
Enemies := 15;
for j := 1 to Enemies do
begin
Enemy := TEnemy.create(dxspriteEngine.Engine,dximageList,En emyLeftImageIndex);
end;
disk := TDisk.Create(dxSpriteEngine.Engine);
Points := 0;
EnemyCount := 0;
SpaceMines := 0;
Attackers := 0;
GreenShips := 0;
Lives := 3;
LivesLeft := 3;
fPlayingState:=_psPlaying;
end;
_psPlaying : begin
FormGame.DxdrawGame.Surface.BltFast(0, 0, backscreen.clientrect,1, backscreen);
DxSpriteEngine.Engine.Move(1);
formGame.BonusLife;
if (player.Deaded) and (Lives <0>= 100000) then
begin
fGameState := _gsEnd;
fEndState:=_esPlaySelected;
formGame.DXWaveList.Items.Find('BlownUp').Play(Fal se);
for I:= DXSpriteEngine.Engine.AllCount-1 downto 0 do
begin
if (DXSpriteEngine.Engine.Items[i] <> nil) then
begin
DXSpriteEngine.Engine.Items[i].dead;
end;
end;
formHigh.ShowModal;
end
else
if (Player.Deaded) and (Lives <= 0) then
begin
fGameState:=_gsEnd;
fEndState:=_esPlaySelected;
formGame.DXWaveList.Items.Find('BlownUp').Play(Fal se);
for I:= DXSpriteEngine.Engine.AllCount-1 downto 0 do
begin
if (DXSpriteEngine.Engine.Items[i] <nil> 0) and (Player.Deaded) then
begin
Player := TPlayer.create(dxspriteEngine.Engine,dximageList,P layerImageIndex);
formGame.dxWaveList.Items.Find('Bonus').Play(false );
end;
end;
end
end;[/pascal]