| 6633 | } |
| 6634 | |
| 6635 | void ChopsCheck(DSWPlayer* pp) |
| 6636 | { |
| 6637 | if (!M_Active() && !(pp->Flags & PF_DEAD) && !pp->sop_riding && numplayers <= 1) |
| 6638 | { |
| 6639 | if (pp->cmd.ucmd.actions & ~SB_RUN || !pp->cmd.ucmd.vel.XY().isZero() || !pp->cmd.ucmd.ang.isZero() || |
| 6640 | (pp->Flags & (PF_CLIMBING | PF_FALLING | PF_DIVING))) |
| 6641 | { |
| 6642 | // Hit a input key or other reason to stop chops |
| 6643 | //if (pp->Chops && pp->Chops->State != pp->Chops->State->RetractState) |
| 6644 | if (pp->Chops) |
| 6645 | { |
| 6646 | if (!pp->sop_control) // specail case |
| 6647 | pp->Flags &= ~(PF_WEAPON_DOWN); |
| 6648 | ChopsSetRetract(pp); |
| 6649 | } |
| 6650 | ChopTics = 0; |
| 6651 | } |
| 6652 | else |
| 6653 | { |
| 6654 | ChopTics += synctics; |
| 6655 | if (!pp->Chops) |
| 6656 | { |
| 6657 | // Chops not up |
| 6658 | if (ChopTics > 30*120) |
| 6659 | { |
| 6660 | ChopTics = 0; |
| 6661 | // take weapon down |
| 6662 | pp->Flags |= (PF_WEAPON_DOWN); |
| 6663 | InitChops(pp); |
| 6664 | } |
| 6665 | } |
| 6666 | else |
| 6667 | { |
| 6668 | // Chops already up |
| 6669 | if (ChopTics > 30*120) |
| 6670 | { |
| 6671 | ChopTics = 0; |
| 6672 | // bring weapon back up |
| 6673 | if (!pp->sop || !(pp->sop->flags & SOBJ_HAS_WEAPON)) |
| 6674 | pp->Flags &= ~(PF_WEAPON_DOWN); |
| 6675 | ChopsSetRetract(pp); |
| 6676 | } |
| 6677 | } |
| 6678 | } |
| 6679 | } |
| 6680 | } |
| 6681 | |
| 6682 | //--------------------------------------------------------------------------- |
| 6683 | // |
no test coverage detected