hedgewars/uGears.pas
changeset 1601 0cff69c8c4cf
parent 1586 2c6f1d1f43c1
child 1660 0eaa6cf36276
equal deleted inserted replaced
1600:305e13c5f327 1601:0cff69c8c4cf
   143 			@doStepWatermelon,
   143 			@doStepWatermelon,
   144 			@doStepCluster,
   144 			@doStepCluster,
   145 			@doStepBomb,
   145 			@doStepBomb,
   146 			@doStepSmokeTrace,
   146 			@doStepSmokeTrace,
   147 			@doStepWaterUp,
   147 			@doStepWaterUp,
   148 			@doStepDrill
   148 			@doStepDrill,
       
   149 			@doStepBallgun,
       
   150 			@doStepBomb
   149 			);
   151 			);
   150 
   152 
   151 procedure InsertGearToList(Gear: PGear);
   153 procedure InsertGearToList(Gear: PGear);
   152 var tmp, ptmp: PGear;
   154 var tmp, ptmp: PGear;
   153 begin
   155 begin
   344                 Result^.Friction:= _0_96;
   346                 Result^.Friction:= _0_96;
   345                 end;
   347                 end;
   346        gtDrill: begin
   348        gtDrill: begin
   347                 Result^.Timer:= 5000;
   349                 Result^.Timer:= 5000;
   348                 Result^.Radius:= 4;
   350                 Result^.Radius:= 4;
       
   351                 end;
       
   352         gtBall: begin
       
   353                 Result^.Radius:= 5;
       
   354                 Result^.Tag:= random(8);
       
   355                 Result^.Timer:= 5000;
       
   356                 Result^.Elasticity:= _0_7;
       
   357                 Result^.Friction:= _0_995;
       
   358                 end;
       
   359      gtBallgun: begin
       
   360                 Result^.Timer:= 5001;
   349                 end;
   361                 end;
   350      end;
   362      end;
   351 InsertGearToList(Result);
   363 InsertGearToList(Result);
   352 AddGear:= Result
   364 AddGear:= Result
   353 end;
   365 end;
   642 					else
   654 					else
   643 						DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
   655 						DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
   644 					HatVisible:= true
   656 					HatVisible:= true
   645 				end;
   657 				end;
   646 			gtDEagleShot: DrawRotated(sprDEagle, hx, hy, hwSign(Gear^.dX), aangle);
   658 			gtDEagleShot: DrawRotated(sprDEagle, hx, hy, hwSign(Gear^.dX), aangle);
       
   659 			gtBallgun: DrawRotated(sprHandBallgun, hx, hy, hwSign(Gear^.dX), aangle);
   647 			gtRope: begin
   660 			gtRope: begin
   648 				if Gear^.X < CurAmmoGear^.X then
   661 				if Gear^.X < CurAmmoGear^.X then
   649 					begin
   662 					begin
   650 					dAngle:= 0;
   663 					dAngle:= 0;
   651 					m:= 1
   664 					m:= 1
   786 	begin
   799 	begin
   787 		amt:= CurrentHedgehog^.Ammo^[CurrentHedgehog^.CurSlot, CurrentHedgehog^.CurAmmo].AmmoType;
   800 		amt:= CurrentHedgehog^.Ammo^[CurrentHedgehog^.CurSlot, CurrentHedgehog^.CurAmmo].AmmoType;
   788 		case amt of
   801 		case amt of
   789 			amBazooka,
   802 			amBazooka,
   790 			amMortar: DrawRotated(sprHandBazooka, hx, hy, hwSign(Gear^.dX), aangle);
   803 			amMortar: DrawRotated(sprHandBazooka, hx, hy, hwSign(Gear^.dX), aangle);
       
   804                         amBallgun: DrawRotated(sprHandBallgun, hx, hy, hwSign(Gear^.dX), aangle);
   791                         amDrill: DrawRotated(sprHandDrill, hx, hy, hwSign(Gear^.dX), aangle);
   805                         amDrill: DrawRotated(sprHandDrill, hx, hy, hwSign(Gear^.dX), aangle);
   792 			amRope: DrawRotated(sprHandRope, hx, hy, hwSign(Gear^.dX), aangle);
   806 			amRope: DrawRotated(sprHandRope, hx, hy, hwSign(Gear^.dX), aangle);
   793 			amShotgun: DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
   807 			amShotgun: DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
   794 			amDEagle: DrawRotated(sprHandDEagle, hx, hy, hwSign(Gear^.dX), aangle);
   808 			amDEagle: DrawRotated(sprHandDEagle, hx, hy, hwSign(Gear^.dX), aangle);
   795 			amBlowTorch: DrawRotated(sprHandBlowTorch, hx, hy, hwSign(Gear^.dX), aangle);
   809 			amBlowTorch: DrawRotated(sprHandBlowTorch, hx, hy, hwSign(Gear^.dX), aangle);
  1037 Gear:= GearsList;
  1051 Gear:= GearsList;
  1038 while Gear<>nil do
  1052 while Gear<>nil do
  1039       begin
  1053       begin
  1040       case Gear^.Kind of
  1054       case Gear^.Kind of
  1041        gtAmmo_Bomb: DrawRotated(sprBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
  1055        gtAmmo_Bomb: DrawRotated(sprBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
       
  1056        gtBall: DrawRotatedf(sprBalls, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tag,0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1042        gtDrill: DrawRotated(sprDrill, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1057        gtDrill: DrawRotated(sprDrill, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1043         gtHedgehog: DrawHH(Gear);
  1058         gtHedgehog: DrawHH(Gear);
  1044     gtAmmo_Grenade: DrawRotated(sprGrenade, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1059     gtAmmo_Grenade: DrawRotated(sprGrenade, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
  1045        gtHealthTag: if Gear^.Tex <> nil then DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tex);
  1060        gtHealthTag: if Gear^.Tex <> nil then DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tex);
  1046            gtGrave: DrawSurfSprite(hwRound(Gear^.X) + WorldDx - 16, hwRound(Gear^.Y) + WorldDy - 16, 32, (GameTicks shr 7) and 7, PHedgehog(Gear^.Hedgehog)^.Team^.GraveTex);
  1061            gtGrave: DrawSurfSprite(hwRound(Gear^.X) + WorldDx - 16, hwRound(Gear^.Y) + WorldDy - 16, 32, (GameTicks shr 7) and 7, PHedgehog(Gear^.Hedgehog)^.Team^.GraveTex);