equal
deleted
inserted
replaced
588 if ((Gear.State and gstAttacking) = 0) then |
588 if ((Gear.State and gstAttacking) = 0) then |
589 begin |
589 begin |
590 if (Gear.Tag = 0) then |
590 if (Gear.Tag = 0) then |
591 begin |
591 begin |
592 Gear.Tag:= 10; |
592 Gear.Tag:= 10; |
593 if isGearNear(Gear, gtHedgehog, 46, 32) then Gear.State:= Gear.State or gstAttacking |
593 if CheckGearNear(Gear, gtHedgehog, 46, 32) <> nil then Gear.State:= Gear.State or gstAttacking |
594 end else dec(Gear.Tag) |
594 end else dec(Gear.Tag) |
595 end else // gstAttacking <> 0 |
595 end else // gstAttacking <> 0 |
596 begin |
596 begin |
597 AllInactive:= false; |
597 AllInactive:= false; |
598 if (Gear.Timer and $1FF) = 0 then PlaySound(sndMineTick); |
598 if (Gear.Timer and $1FF) = 0 then PlaySound(sndMineTick); |
605 dec(Gear.Timer); |
605 dec(Gear.Timer); |
606 end else // gsttmpFlag = 0 |
606 end else // gsttmpFlag = 0 |
607 if TurnTimeLeft = 0 then Gear.State:= Gear.State or gsttmpFlag; |
607 if TurnTimeLeft = 0 then Gear.State:= Gear.State or gsttmpFlag; |
608 end; |
608 end; |
609 |
609 |
|
610 //////////////////////////////////////////////////////////////////////////////// |
610 procedure doStepCase(Gear: PGear); |
611 procedure doStepCase(Gear: PGear); |
611 begin |
612 begin |
|
613 if (Gear.Message and gm_Destroy) > 0 then |
|
614 begin |
|
615 DeleteGear(Gear); |
|
616 exit |
|
617 end; |
|
618 |
612 if (Gear.dY <> 0) or (not TestCollisionY(Gear, 1)) then |
619 if (Gear.dY <> 0) or (not TestCollisionY(Gear, 1)) then |
613 begin |
620 begin |
614 AllInactive:= false; |
621 AllInactive:= false; |
615 Gear.dY:= Gear.dY + cGravity; |
622 Gear.dY:= Gear.dY + cGravity; |
616 Gear.Y:= Gear.Y + Gear.dY; |
623 Gear.Y:= Gear.Y + Gear.dY; |
625 end; |
632 end; |
626 |
633 |
627 if (Gear.CollIndex = High(Longword)) and (Gear.dY = 0) then AddGearCR(Gear) |
634 if (Gear.CollIndex = High(Longword)) and (Gear.dY = 0) then AddGearCR(Gear) |
628 else if (Gear.CollIndex < High(Longword)) and (Gear.dY <> 0) then DeleteCR(Gear); |
635 else if (Gear.CollIndex < High(Longword)) and (Gear.dY <> 0) then DeleteCR(Gear); |
629 |
636 |
630 if (Gear.Tag = 0) then |
|
631 begin |
|
632 Gear.Tag:= 10; |
|
633 if isGearNear(Gear, gtHedgehog, 25, 25) then |
|
634 begin |
|
635 ;//give ammo to hedgehog |
|
636 DeleteGear(Gear); |
|
637 SetAllToActive; |
|
638 end; |
|
639 end else dec(Gear.Tag); |
|
640 |
|
641 if Gear.Damage > 0 then |
637 if Gear.Damage > 0 then |
642 begin |
638 begin |
643 DeleteGear(Gear); |
639 DeleteGear(Gear); |
644 doMakeExplosion(round(Gear.X), round(Gear.Y), 50, EXPLAutoSound) |
640 doMakeExplosion(round(Gear.X), round(Gear.Y), 50, EXPLAutoSound) |
645 end |
641 end |