hedgewars/GSHandlers.inc
changeset 1436 252ab509c779
parent 1435 d4b32ee3caa6
child 1437 9f370351e859
equal deleted inserted replaced
1435:d4b32ee3caa6 1436:252ab509c779
   908 end;
   908 end;
   909 
   909 
   910 ///////////////////////////////////////////////////////////////////////////////
   910 ///////////////////////////////////////////////////////////////////////////////
   911 procedure doStepCase(Gear: PGear);
   911 procedure doStepCase(Gear: PGear);
   912 var i, x, y: LongInt;
   912 var i, x, y: LongInt;
       
   913 	k: TGearType;
   913 begin
   914 begin
   914 if (Gear^.Message and gm_Destroy) > 0 then
   915 if (Gear^.Message and gm_Destroy) > 0 then
   915 	begin
   916 	begin
   916 	DeleteGear(Gear);
   917 	DeleteGear(Gear);
   917 	FreeActionsList;
   918 	FreeActionsList;
   923 
   924 
   924 if Gear^.Damage > 0 then
   925 if Gear^.Damage > 0 then
   925 	begin
   926 	begin
   926 	x:= hwRound(Gear^.X);
   927 	x:= hwRound(Gear^.X);
   927 	y:= hwRound(Gear^.Y);
   928 	y:= hwRound(Gear^.Y);
   928 	if Gear^.Kind = gtCase then
   929 	k:= Gear^.Kind;
       
   930 	DeleteGear(Gear); // <-- delete gear!
       
   931 	
       
   932 	if k = gtCase then
   929 		begin
   933 		begin
   930 		doMakeExplosion(x, y, 25, EXPLAutoSound);
   934 		doMakeExplosion(x, y, 25, EXPLAutoSound);
   931 		for i:= 0 to 63 do
   935 		for i:= 0 to 63 do
   932 			AddGear(x, y, gtFlame, 0, _0, _0, 0);
   936 			AddGear(x, y, gtFlame, 0, _0, _0, 0);
   933 		end;
   937 		end;
   934 	DeleteGear(Gear);
       
   935 	exit
   938 	exit
   936 	end;
   939 	end;
   937 
   940 
   938 if (Gear^.dY.QWordValue <> 0) or (not TestCollisionYwithGear(Gear, 1)) then
   941 if (Gear^.dY.QWordValue <> 0) or (not TestCollisionYwithGear(Gear, 1)) then
   939 	begin
   942 	begin