hedgewars/uGears.pas
changeset 959 18b05fc2d0a6
parent 958 92bb9fa046f9
child 966 664ae90b5b0c
equal deleted inserted replaced
958:92bb9fa046f9 959:18b05fc2d0a6
   603 
   603 
   604 	if ((Gear^.State and gstAttacked) = 0) then
   604 	if ((Gear^.State and gstAttacked) = 0) then
   605 	begin
   605 	begin
   606 		amt:= CurrentHedgehog^.Ammo^[CurrentHedgehog^.CurSlot, CurrentHedgehog^.CurAmmo].AmmoType;
   606 		amt:= CurrentHedgehog^.Ammo^[CurrentHedgehog^.CurSlot, CurrentHedgehog^.CurAmmo].AmmoType;
   607 		case amt of
   607 		case amt of
   608 			amBazooka: DrawRotated(sprHandBazooka, hx, hy, hwSign(Gear^.dX), aangle);
   608 			amBazooka,
       
   609 			amMortar: DrawRotated(sprHandBazooka, hx, hy, hwSign(Gear^.dX), aangle);
   609 			amRope: DrawRotated(sprHandRope, hx, hy, hwSign(Gear^.dX), aangle);
   610 			amRope: DrawRotated(sprHandRope, hx, hy, hwSign(Gear^.dX), aangle);
   610 			amShotgun: DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
   611 			amShotgun: DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
   611 			amDEagle: DrawRotated(sprHandDEagle, hx, hy, hwSign(Gear^.dX), aangle);
   612 			amDEagle: DrawRotated(sprHandDEagle, hx, hy, hwSign(Gear^.dX), aangle);
   612 			amBlowTorch: DrawRotated(sprHandBlowTorch, hx, hy, hwSign(Gear^.dX), aangle);
   613 			amBlowTorch: DrawRotated(sprHandBlowTorch, hx, hy, hwSign(Gear^.dX), aangle);
   613 		end;
   614 		end;
   819                     DrawRotatedF(sprTeleport, hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, Gear^.Pos, hwSign(HHGear^.dX), 0);
   820                     DrawRotatedF(sprTeleport, hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, Gear^.Pos, hwSign(HHGear^.dX), 0);
   820                     DrawRotatedF(sprTeleport, hwRound(HHGear^.X) + 1 + WorldDx, hwRound(HHGear^.Y) - 3 + WorldDy, 11 - Gear^.Pos, hwSign(HHGear^.dX), 0);
   821                     DrawRotatedF(sprTeleport, hwRound(HHGear^.X) + 1 + WorldDx, hwRound(HHGear^.Y) - 3 + WorldDy, 11 - Gear^.Pos, hwSign(HHGear^.dX), 0);
   821                     end;
   822                     end;
   822         gtSwitcher: DrawSprite(sprSwitch, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 56 + WorldDy, (GameTicks shr 6) mod 12);
   823         gtSwitcher: DrawSprite(sprSwitch, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 56 + WorldDy, (GameTicks shr 6) mod 12);
   823           gtTarget: DrawSprite(sprTarget, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 16 + WorldDy, 0);
   824           gtTarget: DrawSprite(sprTarget, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 16 + WorldDy, 0);
       
   825           gtMortar: DrawRotated(sprMortar, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
   824               end;
   826               end;
   825       Gear:= Gear^.NextGear
   827       Gear:= Gear^.NextGear
   826       end;
   828       end;
   827 end;
   829 end;
   828 
   830 
   987 					for i:= 0 to cMaxHHIndex do
   989 					for i:= 0 to cMaxHHIndex do
   988 						with Hedgehogs[i] do
   990 						with Hedgehogs[i] do
   989 							if (Gear <> nil) and (Gear^.X.QWordValue = 0) then
   991 							if (Gear <> nil) and (Gear^.X.QWordValue = 0) then
   990 								begin
   992 								begin
   991 								FindPlace(Gear, false, t, t + 1024);
   993 								FindPlace(Gear, false, t, t + 1024);
   992 								Gear^.Pos:= GetRandom(19);
   994 								Gear^.Pos:= GetRandom(19)
   993 								end;
   995 								end;
   994 		inc(t, 1024)
   996 		inc(t, 1024)
   995 		end
   997 		end
   996 	end else // mix hedgehogs
   998 	end else // mix hedgehogs
   997 	begin
   999 	begin
  1010 
  1012 
  1011 	while (Count > 0) do
  1013 	while (Count > 0) do
  1012 		begin
  1014 		begin
  1013 		i:= GetRandom(Count);
  1015 		i:= GetRandom(Count);
  1014 		FindPlace(ar[i], false, 0, 2048);
  1016 		FindPlace(ar[i], false, 0, 2048);
       
  1017 		ar[i]^.Pos:= GetRandom(19);
  1015 		ar[i]:= ar[Count - 1];
  1018 		ar[i]:= ar[Count - 1];
  1016 		dec(Count)
  1019 		dec(Count)
  1017 		end
  1020 		end
  1018 	end
  1021 	end
  1019 end;
  1022 end;