hedgewars/GSHandlers.inc
changeset 2915 a02f276035e8
parent 2911 cd355befa683
child 2932 9bc0cf3c7ac1
equal deleted inserted replaced
2914:7db64c269a5b 2915:a02f276035e8
  1280 		for i:= 0 to 63 do
  1280 		for i:= 0 to 63 do
  1281 			AddGear(x, y, gtFlame, 0, _0, _0, 0);
  1281 			AddGear(x, y, gtFlame, 0, _0, _0, 0);
  1282 		end
  1282 		end
  1283 	else if k = gtExplosives then
  1283 	else if k = gtExplosives then
  1284 		begin
  1284 		begin
  1285 		doMakeExplosion(x, y, 25, EXPLAutoSound);
  1285 		doMakeExplosion(x, y, 75, EXPLAutoSound);
  1286 		for i:= 0 to 31 do
  1286 		for i:= 0 to 31 do
  1287 			begin
  1287 			begin
  1288 			dX:= AngleCos(i * 64) * _0_5 * (getrandom + _1);
  1288 			dX:= AngleCos(i * 64) * _0_5 * (getrandom + _1);
  1289 			dY:= AngleSin(i * 64) * _0_5 * (getrandom + _1);
  1289 			dY:= AngleSin(i * 64) * _0_5 * (getrandom + _1);
  1290 			AddGear(x, y, gtFlame, 0, dX, dY, 0);
  1290 			AddGear(x, y, gtFlame, 0, dX, dY, 0);
  1300 	Gear^.dY:= Gear^.dY + cGravity;
  1300 	Gear^.dY:= Gear^.dY + cGravity;
  1301 	Gear^.Y:= Gear^.Y + Gear^.dY;
  1301 	Gear^.Y:= Gear^.Y + Gear^.dY;
  1302 	if (Gear^.dY.isNegative) and TestCollisionYwithGear(Gear, -1) then Gear^.dY:= _0 else
  1302 	if (Gear^.dY.isNegative) and TestCollisionYwithGear(Gear, -1) then Gear^.dY:= _0 else
  1303 	if (not Gear^.dY.isNegative) and TestCollisionYwithGear(Gear, 1) then
  1303 	if (not Gear^.dY.isNegative) and TestCollisionYwithGear(Gear, 1) then
  1304 		begin
  1304 		begin
       
  1305 		if Gear^.dY > _0_2 then
       
  1306 	        for i:= min(12, hwRound(Gear^.dY*_10)) downto 0 do 
       
  1307 		        AddVisualGear(hwRound(Gear^.X) - 5 + Random(10), hwRound(Gear^.Y) + 12, vgtDust);
  1305 		Gear^.dY:= - Gear^.dY * Gear^.Elasticity;
  1308 		Gear^.dY:= - Gear^.dY * Gear^.Elasticity;
  1306 		if Gear^.dY > - _0_001 then Gear^.dY:= _0
  1309 		if Gear^.dY > - _0_001 then Gear^.dY:= _0
  1307 			else if Gear^.dY < - _0_03 then PlaySound(sndGraveImpact);
  1310 			else if Gear^.dY < - _0_03 then PlaySound(sndGraveImpact)
  1308 		end;
  1311 		end;
       
  1312 	//if Gear^.dY > - _0_001 then Gear^.dY:= _0
  1309 	CheckGearDrowning(Gear);
  1313 	CheckGearDrowning(Gear);
  1310 	end;
  1314 	end;
  1311 
  1315 
  1312 if (Gear^.dY.QWordValue = 0) then AddGearCI(Gear)
  1316 if (Gear^.dY.QWordValue = 0) then AddGearCI(Gear)
  1313 	else if (Gear^.dY.QWordValue <> 0) then DeleteCI(Gear)
  1317 	else if (Gear^.dY.QWordValue <> 0) then DeleteCI(Gear)