equal
deleted
inserted
replaced
120 doStepDynamite, |
120 doStepDynamite, |
121 doStepTeamHealthSorter, |
121 doStepTeamHealthSorter, |
122 doStepBomb, |
122 doStepBomb, |
123 doStepCluster, |
123 doStepCluster, |
124 doStepShover, |
124 doStepShover, |
125 doStepFlame |
125 doStepFlame, |
|
126 doStepFirePunch |
126 ); |
127 ); |
127 |
128 |
128 function AddGear(X, Y: integer; Kind: TGearType; State: Cardinal; const dX: real=0.0; dY: real=0.0; Timer: LongWord=0): PGear; |
129 function AddGear(X, Y: integer; Kind: TGearType; State: Cardinal; const dX: real=0.0; dY: real=0.0; Timer: LongWord=0): PGear; |
129 const Counter: Longword = 0; |
130 const Counter: Longword = 0; |
130 begin |
131 begin |
229 Result.Radius:= 1; |
230 Result.Radius:= 1; |
230 Result.Health:= 2; |
231 Result.Health:= 2; |
231 Result.dY:= (getrandom - 0.8) * 0.03; |
232 Result.dY:= (getrandom - 0.8) * 0.03; |
232 Result.dX:= (getrandom - 0.5) * 0.4 |
233 Result.dX:= (getrandom - 0.5) * 0.4 |
233 end; |
234 end; |
|
235 gtFirePunch: begin |
|
236 Result.Radius:= 15; |
|
237 Result.Tag:= Y |
|
238 end; |
234 end; |
239 end; |
235 if GearsList = nil then GearsList:= Result |
240 if GearsList = nil then GearsList:= Result |
236 else begin |
241 else begin |
237 GearsList.PrevGear:= Result; |
242 GearsList.PrevGear:= Result; |
238 Result.NextGear:= GearsList; |
243 Result.NextGear:= GearsList; |
255 begin |
260 begin |
256 team:= PHedgehog(Gear.Hedgehog).Team; |
261 team:= PHedgehog(Gear.Hedgehog).Team; |
257 PHedgehog(Gear.Hedgehog).Gear:= nil; |
262 PHedgehog(Gear.Hedgehog).Gear:= nil; |
258 RecountTeamHealth(team); |
263 RecountTeamHealth(team); |
259 end; |
264 end; |
260 if CurAmmoGear = Gear then |
265 if CurAmmoGear = Gear then CurAmmoGear:= nil; |
261 CurAmmoGear:= nil; |
|
262 if FollowGear = Gear then FollowGear:= nil; |
266 if FollowGear = Gear then FollowGear:= nil; |
263 {$IFDEF DEBUGFILE}AddFileLog('DeleteGear: handle = '+inttostr(integer(Gear)));{$ENDIF} |
267 {$IFDEF DEBUGFILE}AddFileLog('DeleteGear: handle = '+inttostr(integer(Gear)));{$ENDIF} |
264 if Gear.NextGear <> nil then Gear.NextGear.PrevGear:= Gear.PrevGear; |
268 if Gear.NextGear <> nil then Gear.NextGear.PrevGear:= Gear.PrevGear; |
265 if Gear.PrevGear <> nil then Gear.PrevGear.NextGear:= Gear.NextGear |
269 if Gear.PrevGear <> nil then Gear.PrevGear.NextGear:= Gear.NextGear |
266 else begin |
270 else begin |
619 end |
623 end |
620 end |
624 end |
621 end; |
625 end; |
622 |
626 |
623 procedure AssignHHCoords; |
627 procedure AssignHHCoords; |
624 var Gear: PGear; |
628 var Team: PTeam; |
625 begin |
629 i, t: integer; |
626 Gear:= GearsList; |
630 begin |
627 while Gear <> nil do |
631 Team:= TeamsList; |
628 begin |
632 t:= 0; |
629 if Gear.Kind = gtHedgehog then |
633 while Team <> nil do |
630 FindPlace(Gear, false, 0, 2048); |
634 begin |
631 Gear:= Gear.NextGear |
635 for i:= 0 to cMaxHHIndex do |
|
636 with Team.Hedgehogs[i] do |
|
637 if Gear <> nil then |
|
638 if (GameFlags and gfForts) = 0 then FindPlace(Gear, false, 0, 2048) |
|
639 else FindPlace(Gear, false, t, t + 1024); |
|
640 inc(t, 1024); |
|
641 Team:= Team.Next |
632 end |
642 end |
633 end; |
643 end; |
634 |
644 |
635 function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: integer): PGear; |
645 function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: integer): PGear; |
636 var t: PGear; |
646 var t: PGear; |