equal
deleted
inserted
replaced
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 |