hedgewars/uGears.pas
changeset 994 ea415d03968c
parent 987 0fcd3fadda41
child 997 d828d1d1ecc4
equal deleted inserted replaced
993:4319810f23c1 994:ea415d03968c
   301       gtTarget: begin
   301       gtTarget: begin
   302                 Result^.Radius:= 16;
   302                 Result^.Radius:= 16;
   303                 Result^.Elasticity:= _0_3
   303                 Result^.Elasticity:= _0_3
   304                 end;
   304                 end;
   305       gtMortar: begin
   305       gtMortar: begin
       
   306                 Result^.Radius:= 4;
   306                 Result^.Elasticity:= _0_2;
   307                 Result^.Elasticity:= _0_2;
   307                 Result^.Friction:= _0_08
   308                 Result^.Friction:= _0_08
   308                 end;
   309                 end;
   309         gtWhip: Result^.Radius:= 20;
   310         gtWhip: Result^.Radius:= 20;
   310     gtKamikaze: begin
   311     gtKamikaze: begin
   704 		hwSign(Gear^.dX),
   705 		hwSign(Gear^.dX),
   705 		0);
   706 		0);
   706 	end;
   707 	end;
   707 
   708 
   708 with PHedgehog(Gear^.Hedgehog)^ do
   709 with PHedgehog(Gear^.Hedgehog)^ do
   709 	if (Gear^.State{ and not gstAnimation}) = 0 then
   710 	begin
       
   711 	if ((Gear^.State{ and not gstAnimation}) = 0)
       
   712 		or (bShowFinger and ((Gear^.State and gstHHDriven) <> 0)) then
   710 	begin
   713 	begin
   711 	t:= hwRound(Gear^.Y) - cHHRadius - 12 + WorldDy;
   714 	t:= hwRound(Gear^.Y) - cHHRadius - 12 + WorldDy;
   712 	if (cTagsMask and 1) <> 0 then
   715 	if (cTagsMask and 1) <> 0 then
   713 		begin
   716 		begin
   714 		dec(t, HealthTagTex^.h + 2);
   717 		dec(t, HealthTagTex^.h + 2);
   722 	if (cTagsMask and 4) <> 0 then
   725 	if (cTagsMask and 4) <> 0 then
   723 		begin
   726 		begin
   724 		dec(t, Team^.NameTagTex^.h + 2);
   727 		dec(t, Team^.NameTagTex^.h + 2);
   725 		DrawCentered(hwRound(Gear^.X) + WorldDx, t, Team^.NameTagTex)
   728 		DrawCentered(hwRound(Gear^.X) + WorldDx, t, Team^.NameTagTex)
   726 		end
   729 		end
   727 	end else // Current hedgehog
   730 	end;
   728 	if (Gear^.State and gstHHDriven) <> 0 then
   731 	if (Gear^.State and gstHHDriven) <> 0 then // Current hedgehog
   729 		begin
   732 		begin
   730 		if bShowFinger and ((Gear^.State and gstHHDriven) <> 0) then
   733 		if bShowFinger and ((Gear^.State and gstHHDriven) <> 0) then
   731 			DrawSprite(sprFinger, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 64 + WorldDy,
   734 			DrawSprite(sprFinger, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 64 + WorldDy,
   732 						GameTicks div 32 mod 16);
   735 						GameTicks div 32 mod 16);
   733 
   736 
   742 							12, 12,
   745 							12, 12,
   743 							Round(hwRound(Gear^.X) + hwSign(Gear^.dX) * m * Sin(Gear^.Angle*pi/cMaxAngle) * 60) + WorldDx,
   746 							Round(hwRound(Gear^.X) + hwSign(Gear^.dX) * m * Sin(Gear^.Angle*pi/cMaxAngle) * 60) + WorldDx,
   744 							Round(hwRound(Gear^.Y) - Cos(Gear^.Angle*pi/cMaxAngle) * 60) + WorldDy, 0,
   747 							Round(hwRound(Gear^.Y) - Cos(Gear^.Angle*pi/cMaxAngle) * 60) + WorldDy, 0,
   745 							hwSign(Gear^.dX) * (Gear^.Angle * 180.0) / cMaxAngle)
   748 							hwSign(Gear^.dX) * (Gear^.Angle * 180.0) / cMaxAngle)
   746 					end
   749 					end
   747 			end;
   750 			end
       
   751 	end
   748 end;
   752 end;
   749 
   753 
   750 procedure DrawGears;
   754 procedure DrawGears;
   751 var Gear, HHGear: PGear;
   755 var Gear, HHGear: PGear;
   752     i: Longword;
   756     i: Longword;