242 Gear.Message:= gm_Destroy; |
247 Gear.Message:= gm_Destroy; |
243 CurAmmoGear.Message:= gm_Destroy; |
248 CurAmmoGear.Message:= gm_Destroy; |
244 exit |
249 exit |
245 end else |
250 end else |
246 begin |
251 begin |
|
252 if Gear.Y >= cWaterLine then |
|
253 AddGear(Round(Gear.X), Round(Gear.Y), gtHealthTag, max(Gear.Damage, Gear.Health)).Hedgehog:= Gear.Hedgehog; |
247 team:= PHedgehog(Gear.Hedgehog).Team; |
254 team:= PHedgehog(Gear.Hedgehog).Team; |
248 PHedgehog(Gear.Hedgehog).Gear:= nil; |
|
249 if CurrentTeam.Hedgehogs[CurrentTeam.CurrHedgehog].Gear = Gear then |
255 if CurrentTeam.Hedgehogs[CurrentTeam.CurrHedgehog].Gear = Gear then |
250 FreeActionsList; // to avoid ThinkThread on drawned gear |
256 FreeActionsList; // to avoid ThinkThread on drawned gear |
|
257 PHedgehog(Gear.Hedgehog).Gear:= nil; |
251 RecountTeamHealth(team); |
258 RecountTeamHealth(team); |
252 end; |
259 end; |
253 {$IFDEF DEBUGFILE}AddFileLog('DeleteGear: handle = '+inttostr(integer(Gear)));{$ENDIF} |
260 {$IFDEF DEBUGFILE}AddFileLog('DeleteGear: handle = '+inttostr(integer(Gear)));{$ENDIF} |
254 if CurAmmoGear = Gear then CurAmmoGear:= nil; |
261 if CurAmmoGear = Gear then CurAmmoGear:= nil; |
255 if FollowGear = Gear then FollowGear:= nil; |
262 if FollowGear = Gear then FollowGear:= nil; |
515 posCaseHealth: DrawSprite(sprFAid, Round(Gear.X) - 24 + WorldDx, Round(Gear.Y) - 24 + WorldDy, (GameTicks shr 6) mod 13, Surface); |
522 posCaseHealth: DrawSprite(sprFAid, Round(Gear.X) - 24 + WorldDx, Round(Gear.Y) - 24 + WorldDy, (GameTicks shr 6) mod 13, Surface); |
516 end; |
523 end; |
517 gtClusterBomb: DrawSprite(sprClusterBomb, Round(Gear.X) - 8 + WorldDx, Round(Gear.Y) - 8 + WorldDy, trunc(Gear.DirAngle), Surface); |
524 gtClusterBomb: DrawSprite(sprClusterBomb, Round(Gear.X) - 8 + WorldDx, Round(Gear.Y) - 8 + WorldDy, trunc(Gear.DirAngle), Surface); |
518 gtCluster: DrawSprite(sprClusterParticle, Round(Gear.X) - 8 + WorldDx, Round(Gear.Y) - 8 + WorldDy, 0, Surface); |
525 gtCluster: DrawSprite(sprClusterParticle, Round(Gear.X) - 8 + WorldDx, Round(Gear.Y) - 8 + WorldDy, 0, Surface); |
519 gtFlame: DrawSprite(sprFlame, Round(Gear.X) - 8 + WorldDx, Round(Gear.Y) - 8 + WorldDy,(GameTicks div 128 + Gear.Angle) mod 8, Surface); |
526 gtFlame: DrawSprite(sprFlame, Round(Gear.X) - 8 + WorldDx, Round(Gear.Y) - 8 + WorldDy,(GameTicks div 128 + Gear.Angle) mod 8, Surface); |
|
527 gtAirBomb: DrawSprite(sprAirBomb , Round(Gear.X) - 16 + WorldDx, Round(Gear.Y) - 16 + WorldDy, DxDy2Angle32(Gear.dY, Gear.dX), Surface); |
520 end; |
528 end; |
521 Gear:= Gear.NextGear |
529 Gear:= Gear.NextGear |
522 end; |
530 end; |
523 end; |
531 end; |
524 |
532 |