equal
deleted
inserted
replaced
7357 |
7357 |
7358 CreateShellForGear(Sentry, Sentry^.WDTimer and 1); |
7358 CreateShellForGear(Sentry, Sentry^.WDTimer and 1); |
7359 PlaySound(sndGun); |
7359 PlaySound(sndGun); |
7360 end; |
7360 end; |
7361 |
7361 |
7362 function GetSentryTarget(): PGear; |
7362 function GetSentryTarget(sentry: PGear): PGear; |
7363 var HHGear: PGear; |
7363 var HHGear: PGear; |
|
7364 friendlyTarget: boolean; |
7364 begin |
7365 begin |
7365 GetSentryTarget := nil; |
7366 GetSentryTarget := nil; |
7366 if (CurrentHedgehog <> nil) then |
7367 friendlyTarget := false; |
|
7368 |
|
7369 if CurrentHedgehog <> nil then |
7367 begin |
7370 begin |
7368 HHGear := CurrentHedgehog^.Gear; |
7371 HHGear := CurrentHedgehog^.Gear; |
7369 if HHGear <> nil then |
7372 if HHGear <> nil then |
7370 begin |
7373 if ((HHGear^.State and gstHHDriven) <> 0) and (HHGear^.CollisionIndex < 0) then |
7371 if ((HHGear^.State and gstHHDriven) <> 0) |
7374 begin |
7372 and (HHGear^.CollisionIndex < 0) then |
7375 if sentry^.Hedgehog <> nil then |
7373 GetSentryTarget := HHGear; |
7376 friendlyTarget := sentry^.Hedgehog^.Team = CurrentHedgehog^.Team; |
7374 end |
7377 if not friendlyTarget then |
|
7378 GetSentryTarget := HHGear; |
|
7379 end |
7375 end |
7380 end |
7376 end; |
7381 end; |
7377 |
7382 |
7378 procedure doStepSentryLand(Gear: PGear); |
7383 procedure doStepSentryLand(Gear: PGear); |
7379 var HHGear: PGear; |
7384 var HHGear: PGear; |
7498 AimSentry(Gear); |
7503 AimSentry(Gear); |
7499 |
7504 |
7500 if ((GameTicks and $FF) = 0) |
7505 if ((GameTicks and $FF) = 0) |
7501 and (Gear^.Tag in [sentry_Idle, sentry_Walking]) then |
7506 and (Gear^.Tag in [sentry_Idle, sentry_Walking]) then |
7502 begin |
7507 begin |
7503 HHGear := GetSentryTarget(); |
7508 HHGear := GetSentryTarget(Gear); |
7504 if HHGear <> nil then |
7509 if HHGear <> nil then |
7505 if CheckSentryAttackRange(Gear, HHGear^.X, HHGear^.Y) then |
7510 if CheckSentryAttackRange(Gear, HHGear^.X, HHGear^.Y) then |
7506 begin |
7511 begin |
7507 Gear^.Target.X := hwRound(HHGear^.X); |
7512 Gear^.Target.X := hwRound(HHGear^.X); |
7508 Gear^.Target.Y := hwRound(HHGear^.Y); |
7513 Gear^.Target.Y := hwRound(HHGear^.Y); |
7600 AimSentry(Gear); |
7605 AimSentry(Gear); |
7601 |
7606 |
7602 if ((GameTicks and $FF) = 0) |
7607 if ((GameTicks and $FF) = 0) |
7603 and (Gear^.Tag in [sentry_Idle, sentry_Walking]) then |
7608 and (Gear^.Tag in [sentry_Idle, sentry_Walking]) then |
7604 begin |
7609 begin |
7605 HHGear := GetSentryTarget(); |
7610 HHGear := GetSentryTarget(Gear); |
7606 if HHGear <> nil then |
7611 if HHGear <> nil then |
7607 if CheckSentryAttackRange(Gear, HHGear^.X, HHGear^.Y) then |
7612 if CheckSentryAttackRange(Gear, HHGear^.X, HHGear^.Y) then |
7608 begin |
7613 begin |
7609 Gear^.Target.X := hwRound(HHGear^.X); |
7614 Gear^.Target.X := hwRound(HHGear^.X); |
7610 Gear^.Target.Y := hwRound(HHGear^.Y); |
7615 Gear^.Target.Y := hwRound(HHGear^.Y); |