equal
deleted
inserted
replaced
3829 doPortalColorSwitch(); |
3829 doPortalColorSwitch(); |
3830 |
3830 |
3831 // destroy portal if ground it was attached too is gone |
3831 // destroy portal if ground it was attached too is gone |
3832 if ((Land[hwRound(Gear^.Y), hwRound(Gear^.X)] and $FF00) = 0) |
3832 if ((Land[hwRound(Gear^.Y), hwRound(Gear^.X)] and $FF00) = 0) |
3833 or (Gear^.Timer < 1) |
3833 or (Gear^.Timer < 1) |
3834 or (Gear^.Hedgehog <> CurrentHedgehog) |
3834 or (Gear^.Hedgehog^.Team <> CurrentHedgehog^.Team) |
3835 or (hwRound(Gear^.Y) > cWaterLine) then |
3835 or (hwRound(Gear^.Y) > cWaterLine) then |
3836 begin |
3836 begin |
3837 deleteGear(Gear); |
3837 deleteGear(Gear); |
3838 EXIT; |
3838 EXIT; |
3839 end; |
3839 end; |
4216 |
4216 |
4217 procedure doStepMovingPortal(Gear: PGear); |
4217 procedure doStepMovingPortal(Gear: PGear); |
4218 begin |
4218 begin |
4219 doPortalColorSwitch(); |
4219 doPortalColorSwitch(); |
4220 doStepPerPixel(Gear, @doStepMovingPortal_real, true); |
4220 doStepPerPixel(Gear, @doStepMovingPortal_real, true); |
4221 if (Gear^.Timer < 1) |
4221 if (Gear^.Timer < 1) |
4222 or (Gear^.Hedgehog <> CurrentHedgehog) then |
4222 or (Gear^.Hedgehog^.Team <> CurrentHedgehog^.Team) then |
4223 deleteGear(Gear); |
4223 deleteGear(Gear); |
4224 end; |
4224 end; |
4225 |
4225 |
4226 procedure doStepPortalShot(newPortal: PGear); |
4226 procedure doStepPortalShot(newPortal: PGear); |
4227 var |
4227 var |
4257 |
4257 |
4258 iterator := GearsList; |
4258 iterator := GearsList; |
4259 while iterator <> nil do |
4259 while iterator <> nil do |
4260 begin |
4260 begin |
4261 if (iterator^.Kind = gtPortal) then |
4261 if (iterator^.Kind = gtPortal) then |
4262 if (iterator <> newPortal) and (iterator^.Timer > 0) then |
4262 if (iterator <> newPortal) and (iterator^.Timer > 0) and (iterator^.Hedgehog = CurrentHedgehog) then |
4263 begin |
4263 begin |
4264 if (iterator^.Tag and 2) = (newPortal^.Tag and 2) then |
4264 if ((iterator^.Tag and 2) = (newPortal^.Tag and 2)) then |
4265 begin |
4265 begin |
4266 iterator^.Timer:= 0; |
4266 iterator^.Timer:= 0; |
4267 end |
4267 end |
4268 else |
4268 else |
4269 begin |
4269 begin |
4270 // link portals with each other |
4270 // link portals with each other |
4271 newPortal^.IntersectGear := iterator; |
4271 newPortal^.IntersectGear := iterator; |
4272 iterator^.IntersectGear := newPortal; |
4272 iterator^.IntersectGear := newPortal; |
4273 iterator^.Health := newPortal^.Health; |
4273 iterator^.Health := newPortal^.Health; |
4274 end; |
4274 end; |
4275 end; |
4275 end; |
4276 iterator^.PortalCounter:= 0; |
4276 iterator^.PortalCounter:= 0; |
4277 iterator := iterator^.NextGear |
4277 iterator := iterator^.NextGear |
4278 end; |
4278 end; |
4279 end; |
4279 end; |