when attempting to saddle or mount a sleeping steed, try to wake it up (for the saddling case, it won't be u.usteed yet) */
| 824 | /* when attempting to saddle or mount a sleeping steed, try to wake it up |
| 825 | (for the saddling case, it won't be u.usteed yet) */ |
| 826 | staticfn void |
| 827 | maybewakesteed(struct monst *steed) |
| 828 | { |
| 829 | int frozen = (int) steed->mfrozen; |
| 830 | boolean wasimmobile = helpless(steed); |
| 831 | |
| 832 | steed->msleeping = 0; |
| 833 | if (frozen) { |
| 834 | frozen = (frozen + 1) / 2; /* half */ |
| 835 | /* might break out of timed sleep or paralysis */ |
| 836 | if (!rn2(frozen)) { |
| 837 | steed->mfrozen = 0; |
| 838 | steed->mcanmove = 1; |
| 839 | } else { |
| 840 | /* didn't awake, but remaining duration is halved */ |
| 841 | steed->mfrozen = frozen; |
| 842 | } |
| 843 | } |
| 844 | if (wasimmobile && !helpless(steed)) |
| 845 | pline("%s wakes up.", Monnam(steed)); |
| 846 | /* regardless of waking, terminate any meal in progress */ |
| 847 | finish_meating(steed); |
| 848 | } |
| 849 | |
| 850 | /* steed has taken on a new shape */ |
| 851 | void |
no test coverage detected