1081 procedure doStepFlame(Gear: PGear); |
1081 procedure doStepFlame(Gear: PGear); |
1082 begin |
1082 begin |
1083 AllInactive:= false; |
1083 AllInactive:= false; |
1084 if not TestCollisionYwithGear(Gear, 1) then |
1084 if not TestCollisionYwithGear(Gear, 1) then |
1085 begin |
1085 begin |
1086 Gear^.dX:= Gear^.dX + cWindSpeed; |
1086 if hwAbs(Gear^.dX - cWindSpeed) > _0_1 then |
|
1087 Gear^.dX:= (Gear^.dX - cWindSpeed) * _0_5 + cWindSpeed; |
|
1088 |
1087 Gear^.dY:= Gear^.dY + cGravity; |
1089 Gear^.dY:= Gear^.dY + cGravity; |
1088 if hwAbs(Gear^.dX) > _0_1 then Gear^.dX:= Gear^.dX * _0_5; |
|
1089 if Gear^.dY > _0_1 then Gear^.dY:= Gear^.dY * _0_995; |
1090 if Gear^.dY > _0_1 then Gear^.dY:= Gear^.dY * _0_995; |
|
1091 |
1090 Gear^.X:= Gear^.X + Gear^.dX; |
1092 Gear^.X:= Gear^.X + Gear^.dX; |
1091 Gear^.Y:= Gear^.Y + Gear^.dY; |
1093 Gear^.Y:= Gear^.Y + Gear^.dY; |
|
1094 |
1092 if not (Gear^.Y < _1024) then |
1095 if not (Gear^.Y < _1024) then |
1093 begin |
1096 begin |
1094 DeleteGear(Gear); |
1097 DeleteGear(Gear); |
1095 exit |
1098 exit |
1096 end |
1099 end |
1097 end else begin |
1100 end else begin |
1098 if Gear^.Timer > 0 then dec(Gear^.Timer) |
1101 if Gear^.Timer > 0 then dec(Gear^.Timer) |
1099 else begin |
1102 else begin |
1100 AmmoShove(Gear, 5, 5); |
1103 Gear^.Radius:= 5; |
1101 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 3, 0); |
1104 AmmoShove(Gear, 3, 100); |
|
1105 Gear^.Radius:= 1; |
|
1106 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 4, EXPLNoDamage); |
1102 dec(Gear^.Health); |
1107 dec(Gear^.Health); |
1103 Gear^.Timer:= 1250 - Gear^.Angle * 12 |
1108 Gear^.Timer:= 1250 - Gear^.Tag * 12 |
1104 end |
1109 end |
1105 end; |
1110 end; |
1106 |
1111 |
1107 //if (((GameTicks div 8) mod 64) = Gear^.Tag) then |
1112 //if (((GameTicks div 8) mod 64) = Gear^.Tag) then |
1108 // AmmoFlameWork(Gear); |
1113 // AmmoFlameWork(Gear); |