hedgewars/uGears.pas
changeset 1263 24677a82531d
parent 1262 e9191c693e44
child 1270 ee024c14c904
equal deleted inserted replaced
1262:e9191c693e44 1263:24677a82531d
   139 			@doStepWhip,
   139 			@doStepWhip,
   140 			@doStepKamikaze,
   140 			@doStepKamikaze,
   141 			@doStepCake,
   141 			@doStepCake,
   142 			@doStepSeduction,
   142 			@doStepSeduction,
   143 			@doStepBomb,
   143 			@doStepBomb,
   144 			@doStepCluster
   144 			@doStepCluster,
       
   145 			@doStepBomb,
       
   146 			@doStepSmokeTrace
   145 			);
   147 			);
   146 
   148 
   147 procedure InsertGearToList(Gear: PGear);
   149 procedure InsertGearToList(Gear: PGear);
   148 var tmp, ptmp: PGear;
   150 var tmp, ptmp: PGear;
   149 begin
   151 begin
   243                 end;
   245                 end;
   244   gtPickHammer: begin
   246   gtPickHammer: begin
   245                 Result^.Radius:= 10;
   247                 Result^.Radius:= 10;
   246                 Result^.Timer:= 4000
   248                 Result^.Timer:= 4000
   247                 end;
   249                 end;
   248   gtSmokeTrace: begin
   250   gtSmokeTrace,
       
   251    gtEvilTrace: begin
   249                 Result^.X:= Result^.X - _16;
   252                 Result^.X:= Result^.X - _16;
   250                 Result^.Y:= Result^.Y - _16;
   253                 Result^.Y:= Result^.Y - _16;
   251                 Result^.State:= 8
   254                 Result^.State:= 8
   252                 end;
   255                 end;
   253         gtRope: begin
   256         gtRope: begin
   324         gtCake: begin
   327         gtCake: begin
   325                 Result^.Health:= 2048;
   328                 Result^.Health:= 2048;
   326                 Result^.Radius:= 7;
   329                 Result^.Radius:= 7;
   327                 Result^.Z:= cOnHHZ;
   330                 Result^.Z:= cOnHHZ;
   328                 if hwSign(dX) > 0 then Result^.Angle:= 1 else Result^.Angle:= 3
   331                 if hwSign(dX) > 0 then Result^.Angle:= 1 else Result^.Angle:= 3
       
   332                 end;
       
   333  gtHellishBomb: begin
       
   334                 Result^.Radius:= 4;
       
   335                 Result^.Elasticity:= _0_5;
       
   336                 Result^.Friction:= _0_96;
   329                 end;
   337                 end;
   330      end;
   338      end;
   331 InsertGearToList(Result);
   339 InsertGearToList(Result);
   332 AddGear:= Result
   340 AddGear:= Result
   333 end;
   341 end;
  1086                      DrawRotatedf(sprCakeWalk, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, (GameTicks div 40) mod 6, hwSign(Gear^.dX), Gear^.DirAngle + hwSign(Gear^.dX) * 90)
  1094                      DrawRotatedf(sprCakeWalk, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, (GameTicks div 40) mod 6, hwSign(Gear^.dX), Gear^.DirAngle + hwSign(Gear^.dX) * 90)
  1087                   else
  1095                   else
  1088                      DrawRotatedf(sprCakeDown, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 5 - Gear^.Pos, hwSign(Gear^.dX), 0);
  1096                      DrawRotatedf(sprCakeDown, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 5 - Gear^.Pos, hwSign(Gear^.dX), 0);
  1089       gtWatermelon: DrawRotatedf(sprWatermelon, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 0, Gear^.DirAngle);
  1097       gtWatermelon: DrawRotatedf(sprWatermelon, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 0, Gear^.DirAngle);
  1090       gtMelonPiece: DrawRotatedf(sprWatermelon, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 1, 0, Gear^.DirAngle);
  1098       gtMelonPiece: DrawRotatedf(sprWatermelon, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 1, 0, Gear^.DirAngle);
  1091               end;
  1099      gtHellishBomb: DrawRotated(sprHellishBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
       
  1100       gtEvilTrace: if Gear^.State < 8 then DrawSprite(sprEvilTrace, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.State);
       
  1101          end;
  1092       Gear:= Gear^.NextGear
  1102       Gear:= Gear^.NextGear
  1093       end;
  1103       end;
  1094 end;
  1104 end;
  1095 
  1105 
  1096 procedure FreeGearsList;
  1106 procedure FreeGearsList;