hedgewars/uGears.pas
changeset 1012 36b5cc8264e8
parent 1011 4fe2c4c57d10
child 1013 17148964400d
equal deleted inserted replaced
1011:4fe2c4c57d10 1012:36b5cc8264e8
   245                 Result^.Radius:= 3;
   245                 Result^.Radius:= 3;
   246                 Result^.Friction:= _450;
   246                 Result^.Friction:= _450;
   247                 RopePoints.Count:= 0;
   247                 RopePoints.Count:= 0;
   248                 end;
   248                 end;
   249    gtExplosion: begin
   249    gtExplosion: begin
   250                 Result^.X:= Result^.X - _25;
   250                 Result^.X:= Result^.X;
   251                 Result^.Y:= Result^.Y - _25;
   251                 Result^.Y:= Result^.Y;
   252                 end;
   252                 end;
   253         gtMine: begin
   253         gtMine: begin
   254                 Result^.State:= Result^.State or gstMoving;
   254                 Result^.State:= Result^.State or gstMoving;
   255                 Result^.Radius:= 2;
   255                 Result^.Radius:= 2;
   256                 Result^.Elasticity:= _0_55;
   256                 Result^.Elasticity:= _0_55;
   709 		end;
   709 		end;
   710 
   710 
   711 		defaultPos:= false
   711 		defaultPos:= false
   712 	end
   712 	end
   713 end else // not gstHHDriven
   713 end else // not gstHHDriven
   714 if ((Gear^.State and gstHHJumping) <> 0) then
   714 if (Gear^.Damage > 0)
   715 begin
   715 and ((Gear^.State or gstMoving) <> 0) then
   716 if ((Gear^.State and gstHHHJump) <> 0) then
   716 	begin
   717 	DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy,
       
   718 		- hwSign(Gear^.dX),
       
   719 		1,
       
   720 		1,
       
   721 		0)
       
   722 	else
       
   723 	DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy,
   717 	DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy,
   724 		hwSign(Gear^.dX),
   718 		hwSign(Gear^.dX),
       
   719 		2,
   725 		1,
   720 		1,
   726 		1,
   721 		Gear^.DirAngle);
   727 		0);
       
   728 	defaultPos:= false
   722 	defaultPos:= false
   729 end;
   723 	end;
       
   724 if ((Gear^.State and gstHHJumping) <> 0) then
       
   725 	begin
       
   726 	if ((Gear^.State and gstHHHJump) <> 0) then
       
   727 		DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy,
       
   728 			- hwSign(Gear^.dX),
       
   729 			1,
       
   730 			1,
       
   731 			0)
       
   732 		else
       
   733 		DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy,
       
   734 			hwSign(Gear^.dX),
       
   735 			1,
       
   736 			1,
       
   737 			0);
       
   738 		defaultPos:= false
       
   739 	end;
   730 
   740 
   731 
   741 
   732 if defaultPos then
   742 if defaultPos then
   733 	begin
   743 	begin
   734 	DrawRotatedF(sprHHIdle,
   744 	DrawRotatedF(sprHHIdle,
   892                                     hwRound(PHedgehog(Gear^.Hedgehog)^.Gear^.X) + WorldDx, hwRound(PHedgehog(Gear^.Hedgehog)^.Gear^.Y) + WorldDy);
   902                                     hwRound(PHedgehog(Gear^.Hedgehog)^.Gear^.X) + WorldDx, hwRound(PHedgehog(Gear^.Hedgehog)^.Gear^.Y) + WorldDy);
   893                        DrawRotated(sprRopeHook, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
   903                        DrawRotated(sprRopeHook, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
   894                        end;
   904                        end;
   895                     end;
   905                     end;
   896       gtSmokeTrace: if Gear^.State < 8 then DrawSprite(sprSmokeTrace, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.State);
   906       gtSmokeTrace: if Gear^.State < 8 then DrawSprite(sprSmokeTrace, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.State);
   897        gtExplosion: DrawSprite(sprExplosion50, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.State);
   907        gtExplosion: DrawSprite(sprExplosion50, hwRound(Gear^.X) - 32 + WorldDx, hwRound(Gear^.Y) - 32 + WorldDy, Gear^.State);
   898             gtMine: if ((Gear^.State and gstAttacking) = 0)or((Gear^.Timer and $3FF) < 420)
   908             gtMine: if ((Gear^.State and gstAttacking) = 0)or((Gear^.Timer and $3FF) < 420)
   899                        then DrawRotated(sprMineOff, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle)
   909                        then DrawRotated(sprMineOff, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle)
   900                        else DrawRotated(sprMineOn, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
   910                        else DrawRotated(sprMineOn, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
   901             gtCase: case Gear^.Pos of
   911             gtCase: case Gear^.Pos of
   902                          posCaseAmmo  : DrawSprite(sprCase, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 16 + WorldDy, 0);
   912                          posCaseAmmo  : DrawSprite(sprCase, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 16 + WorldDy, 0);