equal
deleted
inserted
replaced
1175 procedure doMakeExplosion(X, Y, Radius: LongInt; Mask, Tint: LongWord); |
1175 procedure doMakeExplosion(X, Y, Radius: LongInt; Mask, Tint: LongWord); |
1176 var Gear: PGear; |
1176 var Gear: PGear; |
1177 dmg, dmgRadius, dmgBase: LongInt; |
1177 dmg, dmgRadius, dmgBase: LongInt; |
1178 fX, fY: hwFloat; |
1178 fX, fY: hwFloat; |
1179 vg: PVisualGear; |
1179 vg: PVisualGear; |
|
1180 i, cnt: LongInt; |
1180 begin |
1181 begin |
1181 TargetPoint.X:= NoPointX; |
1182 TargetPoint.X:= NoPointX; |
1182 {$IFDEF DEBUGFILE}if Radius > 4 then AddFileLog('Explosion: at (' + inttostr(x) + ',' + inttostr(y) + ')');{$ENDIF} |
1183 {$IFDEF DEBUGFILE}if Radius > 4 then AddFileLog('Explosion: at (' + inttostr(x) + ',' + inttostr(y) + ')');{$ENDIF} |
1183 if Radius > 25 then KickFlakes(Radius, X, Y); |
1184 if Radius > 25 then KickFlakes(Radius, X, Y); |
1184 |
1185 |
1259 end; |
1260 end; |
1260 Gear:= Gear^.NextGear |
1261 Gear:= Gear^.NextGear |
1261 end; |
1262 end; |
1262 |
1263 |
1263 if (Mask and EXPLDontDraw) = 0 then |
1264 if (Mask and EXPLDontDraw) = 0 then |
1264 if (GameFlags and gfSolidLand) = 0 then DrawExplosion(X, Y, Radius); |
1265 if (GameFlags and gfSolidLand) = 0 then |
|
1266 begin |
|
1267 cnt:= DrawExplosion(X, Y, Radius) div 1608; // approx 2 16x16 circles to erase per chunk |
|
1268 if cnt > 0 then |
|
1269 for i:= 0 to cnt do |
|
1270 AddVisualGear(X, Y, vgtChunk) |
|
1271 end; |
1265 |
1272 |
1266 uAIMisc.AwareOfExplosion(0, 0, 0) |
1273 uAIMisc.AwareOfExplosion(0, 0, 0) |
1267 end; |
1274 end; |
1268 |
1275 |
1269 procedure ShotgunShot(Gear: PGear); |
1276 procedure ShotgunShot(Gear: PGear); |