equal
deleted
inserted
replaced
5059 if GameTicks mod 10 = 0 then dec(Gear^.Health); |
5059 if GameTicks mod 10 = 0 then dec(Gear^.Health); |
5060 end; |
5060 end; |
5061 |
5061 |
5062 |
5062 |
5063 procedure updateTarget(Gear:PGear; newX, newY:HWFloat); |
5063 procedure updateTarget(Gear:PGear; newX, newY:HWFloat); |
|
5064 var |
|
5065 iter:PGear; |
5064 begin |
5066 begin |
5065 with Gear^ do |
5067 with Gear^ do |
5066 begin |
5068 begin |
5067 dX:= newX; |
5069 dX:= newX; |
5068 dY:= newY; |
5070 dY:= newY; |
5069 Pos:= 0; |
5071 Pos:= 0; |
5070 Target.X:= NoPointX; |
5072 Target.X:= NoPointX; |
5071 LastDamage:= nil; |
5073 LastDamage:= nil; |
5072 X:= Hedgehog^.Gear^.X; |
5074 X:= Hedgehog^.Gear^.X; |
5073 Y:= Hedgehog^.Gear^.Y; |
5075 Y:= Hedgehog^.Gear^.Y; |
5074 (* unfreeze all semifrozen hogs - make this generic hog cleanup |
5076 //unfreeze all semifrozen hogs - make this generic hog cleanup |
5075 iter := GearsList; |
5077 iter := GearsList; |
5076 while iter <> nil do |
5078 while iter <> nil do |
5077 begin |
5079 begin |
5078 if (iter^.Kind = gtHedgehog) and |
5080 if (iter^.Kind = gtHedgehog) and |
5079 (iter^.Hedgehog^.Effects[heFrozen] < 0) then |
5081 (iter^.Hedgehog^.Effects[heFrozen] and $FF = 0) then |
5080 iter^.Hedgehog^.Effects[heFrozen]:= 0; |
5082 iter^.Hedgehog^.Effects[heFrozen]:= 0; |
5081 iter:= iter^.NextGear |
5083 iter:= iter^.NextGear |
5082 end *) |
5084 end |
5083 end; |
5085 end; |
5084 end; |
5086 end; |
5085 |
5087 |
5086 |
5088 |
5087 function isLanscapeEdge(weight:Longint):boolean; |
5089 function isLanscapeEdge(weight:Longint):boolean; |
5231 DrawIce(Gear, Target.X, Target.Y); |
5233 DrawIce(Gear, Target.X, Target.Y); |
5232 IceState := iceWaitNextTarget; |
5234 IceState := iceWaitNextTarget; |
5233 end; |
5235 end; |
5234 |
5236 |
5235 // freeze nearby hogs |
5237 // freeze nearby hogs |
5236 hogs := GearsNear(Gear^.X, Gear^.Y, gtHedgehog, Gear^.Radius); |
5238 hogs := GearsNear(int2hwFloat(Target.X), int2hwFloat(Target.Y), gtHedgehog, Gear^.Radius); |
5237 if hogs.size > 0 then |
5239 if hogs.size > 0 then |
5238 for i:= 0 to hogs.size - 1 do |
5240 for i:= 0 to hogs.size - 1 do |
5239 begin |
5241 begin |
5240 if hogs.ar^[i] <> HHGear then |
5242 if hogs.ar^[i] <> HHGear then |
5241 begin |
5243 begin |
5242 //if Gear^.Hedgehog^.Effects[heFrozen]:= 0; |
5244 if GameTicks mod 10 = 0 then |
|
5245 if hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] < 256 then |
|
5246 hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] := hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] + 1; |
5243 end; |
5247 end; |
5244 end; |
5248 end; |
5245 inc(Pos) |
5249 inc(Pos) |
5246 end |
5250 end |
5247 else if (t > 400) and ((gY > cWaterLine) or |
5251 else if (t > 400) and ((gY > cWaterLine) or |
5251 Target.X:= gX; |
5255 Target.X:= gX; |
5252 Target.Y:= gY; |
5256 Target.Y:= gY; |
5253 X:= HHGear^.X; |
5257 X:= HHGear^.X; |
5254 Y:= HHGear^.Y |
5258 Y:= HHGear^.Y |
5255 end; |
5259 end; |
5256 if (gX > max(LAND_WIDTH,4096)*2) or |
5260 {if (gX > max(LAND_WIDTH,4096)*2) or |
5257 (gX < -max(LAND_WIDTH,4096)) or |
5261 (gX < -max(LAND_WIDTH,4096)) or |
5258 (gY < -max(LAND_HEIGHT,4096)) or |
5262 (gY < -max(LAND_HEIGHT,4096)) or |
5259 (gY > max(LAND_HEIGHT,4096)+512) then |
5263 (gY > max(LAND_HEIGHT,4096)+512) then |
5260 begin |
5264 begin |
5261 X:= HHGear^.X; |
5265 X:= HHGear^.X; |
5262 Y:= HHGear^.Y |
5266 Y:= HHGear^.Y |
5263 end |
5267 end} |
5264 end |
5268 end |
5265 end; |
5269 end; |
5266 end; |
5270 end; |
5267 |
5271 |
5268 procedure doStepAddAmmo(Gear: PGear); |
5272 procedure doStepAddAmmo(Gear: PGear); |